Near-field communication (nfc) method, apparatus, and system with biometric authentication

ABSTRACT

An apparatus, system and methodology for conducting financial and other transactions using a wireless computing device are provided. The wireless device includes a display screen, a user input interface, one or more processors, and at least one memory device. The memory device has stored therein a wallet application for completing transactions based on wireless data communications between the computing device and an external electronic device. The memory device further stores at least one electronic credential. The wireless device permits transmission, via a near-field communication (NFC) module, of at least one electronic credential to an NFC reader of the external electronic device based on comparing a biometric characteristic of a user, detected by a biometric characteristic reader, with stored biometric information.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present invention is a continuation of and claims benefit ofpriority to co-pending U.S. patent application Ser. No. 14/187,693,filed on Feb. 24, 2014, which is a continuation of and claims benefit ofpriority of U.S. patent application Ser. No. 11/040,847, filed on Jan.21, 2005, now issued as U.S. Pat. No. 8,700,729, the entire disclosureof which is hereby incorporated by reference herein.

BACKGROUND OF THE INVENTION

The present invention relates generally to systems and methodologies forconducting electronic commerce and more particularly to near-fieldcommunication methods, apparatuses, and systems utilizing biometricauthentication.

According to current practices, consumers typically carry multiplesingle-purpose cards, tags, passes, and tokens which allow them toidentify themselves to or present account information to retailers,service providers, financial institutions, government agencies, andother organizations. These single-purpose devices may containcombinations of encoded personal, account, and/or security informationin order to identify a user and to authorize the user to conduct aparticular transaction. Data on these devices may be encoded on avariety of media types such as magnetic stripes, bar codes, chips,and/or embossed or printed data. The creation of standards for manyencoding formats has contributed to the proliferation of certain cardand device types.

For example, data may be encoded on magnetic stripe cards using aproprietary methodology or by employing an “open” or “standard” encodingpattern. Magnetic stripe cards have been embraced by financialinstitutions, merchants, and consumers ever since standards for suchcards were adopted by the industry in the 1970s. A magnetic stripe isencoded with bit patterns, which correspond to three tracks of ASCIIcharacters. Credit cards and other bank cards typically use only tracks1 and 2. Track 3 is a read/write track, but its usage is notstandardized among financial institutions and is seldom used. Themajority of magnetic cards in circulation conform to InternationalStandards Organization (ISO) standards for magnetic cards.

Magnetic stripe technology is widely used throughout the world andremains the dominant technology in the United States for transactionprocessing and access control. One drawback associated with magneticstripe technology is the limited amount of information that it can hold.Other technologies such as bar code and smart chip cards are also widelyused in large part because they can hold more information than magneticstripe cards.

Another drawback of magnetic stripe technology is that it provideslittle in the way of card authentication. The data on the stripe can beeasily read by a card reader and potentially “skimmed” and then copiedonto a fraudulent card. Because of the static nature of the magneticstripe, bank issuers are not able to distinguish card data originatingfrom a genuine card from card data read from a copied (cloned) cardduring an “online” authorization.

Smart cards provide a distinct advantage in that they offer the abilityto provide authentication in connection with a transaction. Cardauthentication can be performed by the reader terminal and/or theissuer's systems using dynamic techniques that distinguish genuine cardsfrom clones. A smart card generally includes an embedded semi-conductordevice which is programmed before issue with the account holder'sinformation. This data is protected through secure encryption methods,making it difficult to fraudulently replicate a smart card. Theintegrated circuits within smart cards in general have continued toimprove with miniaturization, low power requirements, the addition ofstrong encryption capability, and tamper-proof standards forcrypto-processor chips.

There are three general categories of smart cards: contact, contactless,and hybrid smart cards. A contact smart card requires that the userinsert the smart card into a smart card reader with a direct connectionto a conductive micro-module on the surface of the card. It is via thesephysical contact points, that transmission of commands, data, and cardstatus takes place.

A contactless smart card requires only close proximity to a reader. Boththe reader and the card have antennas and it is via this contactlesslink that the two communicate via radio frequency (RF) when in closeproximity. Most contactless cards typically receive power for on-cardelectronic functions via this electromagnetic signal. The range istypically two to three inches for non-battery powered cards, and this isideal for applications such as mass transit which requires a very fastcard interface.

The third category of smart cards is known as hybrid smart cards. Thesecards typically have a dual interface enabling both contact andcontactless communication with the card's chip.

As stated, RF communication is used in connection with both contactlessand hybrid smart cards. RF and Radio Frequency Identification (RFID)technologies come in a variety of forms, each of which may be tailoredfor use in different types of environments. These technologies differin, for example, the frequency bands they employ, which in turninfluences the rate of data transfer between the tag and reader.Consequently, different data transfer rate requirements influence thetypes of solutions that RFID services can and should be expected toprovide. RFID technology is typically used for POS payments, electronictoll collection, access control, and numerous other applications.

Contactless applications are particularly attractive to the retailpayments segment where speed, convenience, and security are essential.Contactless payment systems are used successfully around the globe andoffer a number of advantages to issuers, retailers, and consumers.Contactless payments allow issuers to penetrate the cash payment market,enjoy increased customer transaction volume, reduce fraud, and utilizethe existing transaction processing infrastructure. Retailers realizebenefits due to improved operational efficiency and lower operatingcosts. Consumers enjoy the convenience of faster transaction times andthe ability to integrate multiple payment and loyalty accounts on onedevice.

American Express, MasterCard, and Visa have agreed on a singlecontactless payment standard in the United States, ISO/IEC 14443, andare implementing a contactless payment approach that leverages theexisting payments infrastructure. As a result, merchants can easily adda contactless RF reader to their existing POS systems and immediatelybegin accepting contactless payment. MasterCard and Visa have also beenworking jointly over the last few years to develop specifications thatdefine a set of requirements for security and interoperability betweenchip cards and terminals on a global basis, regardless of themanufacturer, the financial institution, or where the card is used.

As a result of the increased move towards standardization, improvingtechnology and more demanding security and authorization requirements,smart cards are slowly replacing the magnetic stripe card as thedominant technology for conducting financial transactions. The enhancedability of smart cards to secure confidential information and theability of POS systems to authenticate the chip cards makes them anattractive alternative to magnetic stripe cards. Also, the reduction offraudulent transactions achieved by smart cards results in lower risk,and lower fees for the consumer and the merchant.

Another important trend in consumer-related electronics is the increasedspeed and the reduced size of available electronic components which hascontributed to the proliferation of powerful wireless devices. Mobiledevices including personal digital assistants (PDAs) and cellular phonesnow number over one billion worldwide. The capability of wirelessdevices has been augmented by their ability to connect to the Internetand also to exchange data over short ranges with other wireless devicesor readers.

Common short-range communications network standards defined by theInternational Electrical and Electronic Engineers association (IEEE)include 802.11a, 802.11b, and 802.11g. Many mobile devices employ theseIEEE network standards to establish wireless LAN (WLAN) connectivity.Various other short-range technologies currently in use fordevice-to-device communication include Bluetooth and infra-red. Onemajor short-range infra-red (IR) communications network protocol isdefined by the Infra-red Device Association (IrDA), and is known as theIrDA standard. Wireless devices with integrated RFID proximity chips orNear Field Communication (NFC) technology may also provide users theability to transfer information to a reader device.

With reference to the aforementioned fraud concerns as well as thegeneral inconvenience of having to carry a large number of cards, tagsand tokens, it would be beneficial to be able to conduct consumer andother financial transactions in a different manner. Although acompletely cashless society is unlikely at least for the foreseeablefuture, it would be desirable to provide consumers with the ability toconduct more transactions without the need for cash.

The short-range data transmission capability of wireless devices,coupled with electronic wallet software operating on the devices, couldallow users to carry out various transactions using a personal trusteddevice (PTD) that is loaded with the user's payment, identification,and/or other credentials. Unfortunately, there remain various obstaclesto solutions using PTDs or other portable devices for conductingfinancial transactions. One primary hurdle to the broad-based deploymentof such a solution is the difficulty in providing for the convenient,efficient, and secure distribution of credentials into wireless devicessuch that only those authorized to conduct the transactions may do soand only to the extent of their authorization.

Various possible solutions present a variety of drawbacks. Allowing theuser to manually enter his or her personal information or account datathat was previously stored on magnetic stripe, bar code, or chip cardsdirectly into the wireless device leaves open the possibility that thedata could be lost or used by an unauthorized party to make fraudulenttransactions. Banks and other organizations in turn are reluctant toallow manual importation of sensitive information into wireless devices,owing primarily to security risks. Accordingly, there is a need for asolution which provides for the secure importation of financial andother personal information into wireless devices.

Since there is such a large number of credential issuers, mobileoperators, and wireless end-users world-wide, there is also a need for acredential issuance and management system that is readily accessible bysuch a broad and diverse set of users. There is also a need for a systemand method through which credential issuers can securely and rapidlytarget specific wireless devices for the distribution of the appropriatecredentials over public and private networks.

SUMMARY OF THE INVENTION

According to one embodiment of the present invention, a computing deviceincludes a display screen, a user input interface, and one or moreprocessors. At least one memory device has stored therein a plurality ofapplications to be executed by the one or more processors, the pluralityof applications including at least one wallet application for completingtransactions based on wireless data communications between the computingdevice and at least one external electronic device. The at least onememory device further stores at least one electronic credential. Thecomputing device includes a network transceiver configured tocommunicate with a cellular communications network and a short-rangeradio frequency (RF) transceiver to communicate with an external RFdevice, wherein the external RF device supports a predeterminedcommunications protocol. The computing device includes a near-fieldcommunication (NFC) module including a NFC antenna, the NFC moduleconfigured to transmit the at least one electronic credential to a NFCreader of the external electronic device based on the NFC antenna of thecomputing device being within a RF range of a NFC antenna of the NFCreader. The computing device further includes a biometric characteristicreader for reading a biometric characteristic of a user. The computingdevice is configured to permit transmission via the NFC module of the atleast one electronic credential to the NFC reader of the externalelectronic device based on comparing the biometric characteristic of theuser with stored biometric information.

According to another embodiment, a method includes storing in at leastone memory device of a computing device at least one electroniccredential and one or more applications configured to be executed by oneor more processors of the computing device. The computing deviceincludes a near-field communication (NFC) module including a NFCantenna, and the method includes transmitting, by the NFC module to aNFC reader of an external electronic device, the at least one electroniccredential based on the NFC antenna of the computing device being withina RF range of a NFC antenna of the NFC reader. The method includesreading, by a biometric characteristic reader, a biometriccharacteristic of a user. The method further includes transmitting theat least one electronic credential to the NFC reader based on comparingthe biometric characteristic of the user with stored biometricinformation.

According to yet another embodiment, a computing system includes anelectronic device including a near-field communication (NFC) reader, anda portable computing device. The portable computing device includes adisplay screen, a user input interface, and one or more processors. Atleast one memory device has stored therein a plurality of applicationsto be executed by the one or more processors, the plurality ofapplications including at least one wallet application for completingtransactions based on wireless data communications between the computingdevice and at least one external electronic device. The at least onememory device further stores at least one electronic credential. Theportable computing device includes a network transceiver configured tocommunicate with a cellular communications network and a short-rangeradio frequency (RF) transceiver to communicate with an external RFdevice, wherein the external RF device supports a predeterminedcommunications protocol. The portable computing device includes anear-field communication (NFC) module including a NFC antenna, the NFCmodule configured to transmit the at least one electronic credential toa NFC reader of the external electronic device based on the NFC antennaof the portable computing device being within a RF range of a NFCantenna of the NFC reader. The portable computing device furtherincludes a biometric characteristic reader for reading a biometriccharacteristic of a user. The portable computing device is configured topermit transmission via the NFC module of the at least one electroniccredential to the NFC reader of the external electronic device based oncomparing the biometric characteristic of the user with stored biometricinformation.

These and other advantages and features of the present invention aredescribed herein with specificity so as to make the present inventionunderstandable to one of ordinary skill in the art.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a overall view of the components of the present system andtheir relationship to one another according to a preferred embodiment ofthe present invention;

FIG. 2 is a flowchart illustrating the steps in the process for issuinga credential according to a preferred embodiment of the presentinvention;

FIG. 3 illustrates some of the SIP components, their relationship to oneanother and the protocols that are employed in a preferred embodiment ofthe present invention;

FIG. 4 is an illustration of a typical SIP message exchange between acredential issuer and a fictitious mobile user;

FIG. 5 is a block diagram illustrating the steps in the SIP registrationprocess of a wireless device according to a preferred embodiment of thepresent invention;

FIGS. 6( a) and 6(b) are graphical representations showing examples ofwhere a “wallet button” might be situated on a wireless device accordingto a preferred embodiment of the present invention;

FIGS. 7( a) and 7(b) are graphical representations showing examples ofwhere “hot buttons” might be situated on a wireless device according toa preferred embodiment of the present invention;

FIG. 8 is a diagram illustrating the over-the-air PIN verificationscheme of the present invention; and

FIG. 9 is an example screen shot of a PIN Approval Request displayed bythe wallet application according to a preferred embodiment of thepresent invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention for transaction processing and related credentialmanagement and distribution is now described in specific termssufficient to teach one of skill in the practice the invention herein.In the description that follows, numerous specific details are set forthby way of example for the purposes of explanation and in furtherance ofteaching one of skill in the art to practice the invention. It will,however, be understood that the invention is not limited to the specificembodiments disclosed and discussed herein and that the invention can bepracticed without such specific details and/or substitutes therefor. Thepresent invention is limited only by the appended claims and may includevarious other embodiments which are not particularly described hereinbut which remain within the scope and spirit of the present invention.

A general discussion of the present invention is now provided and isthereafter followed by a detailed description of each of the componentsand functions of the invention according to specific preferredembodiments. FIG. 1 is an overall system diagram illustrating some ofthe key components of the credential distribution system of the presentinvention in a preferred embodiment thereof. The ultimate goal of thepresent invention is to securely, accurately and rapidly distributecredentials to the proper wireless devices based upon the actions ofcredential issuers. It is also important that these credential issuershave the ability to securely, accurately and rapidly update credentialsas required. In furtherance of this, wireless credential manager 110 ofthe present invention functions to manage, distribute and updatecredentials so that they are contained as desired in a wallet softwareapplication running on wireless device 200. A set of components 100collectively comprise a subsystem capable of, among other things,causing the issuance of a credential to wireless device 200 according tothe teachings of the present invention.

Although FIG. 1 shows only a single wireless device 200 it will bereadily understood that in deploying the present invention, credentialissuers obtain the ability to selectively control credentials held by apractically unlimited number of wireless devices. The teachings of thepresent invention illustrate techniques for ensuring that the propercredentials are made available only to the proper wireless device or setof wireless devices. Various addressing and other techniques are used inthe present invention to ensure secure control over the distribution ofcredentials to the wireless devices.

In a preferred embodiment of the present invention, distribution ofcredentials is made via a transmission initiated by Issuer CardholderSystem 120 to Wireless Credential Manager 110 which causes thecredential or set of credentials to be transmitted to wireless device200 via the Internet and/or one or more alternative public or privatenetworks. Based upon the specific addressing schemes employed herein,the credential may then ultimately make its way to the targeted wirelessdevice via an over-the-air wireless link.

As stated above, the present invention preferably involves thedistribution of credentials to a “wireless device”. As used herein,wireless device 200 is preferably a device that is capable of wirelesslyconnecting to the Internet using network protocols such as GSM/GPRS,CDMA2000, W-CDMA, EDGE, HDR, 1xRTT, UMTS, IMT-2000, 802.11a, 802.11b,802.11g, or BLUETOOTH or other relevant protocols developed hereinafter.Preferably, wireless device 200 has a display screen and a key pad foralphanumeric and special character data input. It is further preferredthat wireless device 200 has processing and secure storage capabilitiesallowing it to host and operate a wallet application capable ofreceiving, storing, managing and transmitting multiple payment,identification, and other confidential information electronically.Wireless device 200 also preferably has an integrated short-rangecommunication capability for transmitting confidential information andexchanging other data between the wallet application and an externalreader that is in proximity to the wireless device.

Wireless device 200 further preferably is of a type that has an assignedE.164 phone number, Uniform Resource Identifier (URI), or other type ofunique address that can be resolved over the Internet. In a preferredembodiment, wireless device 200 also has a Session Initiation Protocol(SIP) Application Programming Interface (API) framework embedded in orrunning on top of a resident operating system, which allows for multipleSIP-based applications, such as the wallet application discussed herein,to function. The wallet application may also rely on its own SIParchitecture, alleviating the need for a SIP API framework that could beused by multiple SIP applications.

Wireless Credential Manager (WCM) 110 maintains, controls anddistributes credentials in accordance with the teachings herein. In apreferred embodiment, WCM 110 is able to interface with a payment,identification, and/or other existing user management or card managementsystems such as issuer cardholder system 120. An issuer representativemay interface with issuer cardholder system 120 through the use ofcustomer care terminal 150. The process for issuing a credentialaccording to the present invention may be initiated manually by anissuer representative via terminal 150. Alternatively, the customerhimself may initiate the process through interactive voice response(IVR) system 160 by calling in through wireline phone 165 via PSTNnetwork 170.

Other alternatives for initiating the process include the use ofcomputer via the requesting party's ISP 178, the Internet 180 andthrough the issuer's web server 182 to issuer cardholder system 120.Still another alternative for initiating the credential issuing processis through wireless device 200 via mobile operator network 155, SIPproxy 157, Internet 180 and issuer's web server 182. The wireless deviceused to initiate the credential issuance process may be either thedevice to receive the credential or another wireless device.

The bottom of FIG. 1 including a credit card personalization machine, acredit card and an envelope indicates that in connection with thedelivery of a wireless device credential according to the teachings ofthe present invention, it is also possible to deliver a conventionalcredit card or other physical form of the credential for use by thecustomer.

WCM 110 provides for the secure Internet delivery of electroniccredentials to wireless device 200 which is loaded with a walletapplication. WCM 110 provides a secure and robust means of issuing,canceling, and managing electronic credentials on wireless devices viathe Internet. WCM 110 leverages existing Internet protocols andtechnologies, making it easy for issuers to integrate with theirexisting systems, and alleviating the need to establish direct linkswith multiple mobile operators.

E.164 is the name of the international telephone numbering planadministered by the International Telecommunication Union (ITU), whichspecifies the format, structure, and administrative hierarchy oftelephone numbers. “E.164” refers to the ITU document that describes thestructure of telephone numbers. The ITU issues country codes tosovereign nations, but administration of telephone numbers within eachcountry is governed by that country's telecommunications regulatoryagency. A fully qualified E.164 number is designated by a country code,an area or city code, and a phone number. For example, a fullyqualified, E.164 number for the phone number 555-1234 in Washington,D.C. (area code 202) in the United States (country code 1) would be+1-202-555-1234.

According to the teachings of the present invention, an E.164 phonenumber is used to target a user's wallet application on Internet-enabledwireless device 200 for the delivery of credentials and confidentialdata, including but not limited to credit card, debit card, ATM card,loyalty card, driver's license, electronic ticket, coupons and otherinformation. In addition, an E.164 phone number is used according to thepresent invention to target a user's wallet application residing onwireless device 200 for the remote cancellation or updating ofcredentials. Also, E.164 phone numbers may be used as described hereinto make person-to-person, person-to-company, or company-to-companyelectronic payments or fund transfers using wireless device 200.Although a preferred embodiment, this invention is not necessarilylimited to the use of E.164 phone numbers. Rather, the use of URIs andother address types that are capable of being translated to an Internetaddress is also possible for the purposes mentioned above.

In a preferred embodiment, WCM 110 of the present invention uses theElectronic Numbering (ENUM) protocol to resolve a fully qualified E.164telephone number for the particular wireless device 200 (with a loadedwallet application) to a fully qualified domain name addresscorresponding to the same device using a DNS-based architecture. ENUM(E.164 Number Mapping, RFC 3761) is a system that uses DNS (Domain NameService, RFC 1034) in order to translate certain telephone numbers, like‘+12025551234’, into URIs (Uniform Resource Identifiers, RFC 2396) like‘sip:user@sipcarrier.com’. ENUM exists primarily to facilitate theinterconnection of systems that rely on telephone numbers with thosethat use URIs to route transactions. E.164 is the ITU-T standardinternational numbering plan, under which all globally reachabletelephone numbers are organized.

The use of ENUM presupposes the collection of these records into acentral or hierarchical service. According to a preferred embodiment,the resolved Internet address is used to establish secure real-timecommunication between WCM 110 and the wallet application on wirelessdevice 200 using the Session Initiation Protocol (SIP) (for example,according to the RFC 3261 standard) to transfer encrypted credentials.The issuer WCM 110 may also be used to update credentials or update thestatus of credentials on wireless device 200. WCM 110 may also be usedto authenticate a mobile user's identity in real-time during atransaction. While the use of SIP for such purposes is preferred,alternative application protocols may be used in lieu of SIP while stillremaining within the spirit and scope of the present invention.

The use of SIP for transmitting and managing credentials on wirelessdevice 200 is preferred as mobile operators and fixed line operators aremoving towards a SIP-based architecture for voice and other multimediaservices. It is envisioned that the use of SIP for communication betweena credential issuer and a wallet application resident on wireless device200 could leverage the same SIP registrar, proxy, and presence serversused to deliver real-time interactive converged communication serviceswithin a mobile operator's network.

According to a preferred embodiment, ENUM is used as follows. The E.164number is first converted into a query in the e164.arpa domain. Thedomain “e164.arpa” is being populated in order to provide theinfrastructure in DNS for storage of E.164 numbers. In order tofacilitate distributed operations, this domain is divided intosub-domains. The resultant set of services is specified by the returnedcollection of NAPTR (Naming Authority Pointer) records. The agent (theWCM in this case) selects a service that matches the servicecharacteristics of the original request, and takes the corresponding URIfor further resolution by DNS. The elements of this URI are furtherdecomposed as per any rewrite rules in the NAPTR record. DNS queries aregenerated as per the sequence of preferred NAPTR rewrite operations. Theultimate result of this sequence of DNS queries is the specification ofa protocol, an associated port address, and the IP address for apreferred server for the service.

In order to take advantage of ENUM, the mobile telephone number mustfirst be assigned to a user by a telecom operator for services. Thenumber can then be registered for one or more ENUM services. Forexample, a subscriber might wish to install a wallet application onwireless device 200 and register the telephone number as the identifierfor the wallet application. Multiple issuers can in turn deliver paymentmethods, identification, or other types of electronic credentials to thewallet application on the wireless device 200 via the Internet using thephone number as the destination address. Additionally, that subscribermight wish to register an e-mail address or fax number to be associatedwith the same phone number. However the user chooses to set up theseservices, the information for the registered services, including thewallet application, is saved in NAPTR (Naming Authority Pointer)Resource Records.

Today, there exists an issue as to ownership of these ENUM DNS zones. Inother words, it has not yet been decided which entity or entities willhave the right to populate the e164.arpa domain with the URIs. Forpurposes of illustration, the discussion herein assumes that mobileoperators will have the right to populate a collection of resourcerecords associated with a DNS name. Furthermore, while e164.arpa appearsto have been selected as the common international DNS root for ENUM DNSentries, there is a chance that once ENUM moves beyond the trial phasein many countries, a different domain could become the new standard. Assuch, references to e164.arpa throughout this document are not limitingand could be replaced with another root while still remaining within thescope of the present invention.

Credential Issuance Process

According to the present invention, electronic credentials may be issuedto a wallet application on a wireless device 200 held (owned, rented orotherwise controlled) by a user that already has a physical card ortoken-based credential. For example, an existing bank customer that hasa magnetic-stripe credit card may also request a digital card for usewith the wallet application on his or her wireless device 200. The bankcustomer could request the new credential over the phone by firstvalidating his or her identity with the issuer, by logging into theissuer's secure web site using a valid username and password, or inperson at a branch.

Credentials may alternatively be issued to a wireless device held by auser that is applying for a new credential for the first time. Forexample, a user may be applying for a credit card for the first time,and may wish to only request the credential on his or her mobile phone.According to the teachings of this invention, credential issuers mayrequest from applicants (e.g. over the telephone) a properly formattedE.164 phone number in order to target the delivery of credential(s) to awallet application on wireless device 200. The request for a E.164wireless device number on an application for a credit card, debit card,ATM card, loyalty card, driver's license, security pass, coupons,certificates, or other credential type is made by the issuer. The E.164phone number may be obtained on paper, via a web-based application, viaan electronic kiosk, via telephone or it may be captured through othermeans.

Turning now to FIG. 2, an overview of the credential issuance process ofthe present invention, in a preferred embodiment thereof, is nowdescribed. The credential issuance process begins with WCM 110 receivinga request from the issuer's card or user management system 120 to issueelectronic credentials to an individual user (see step 310). The requestis forwarded to WCM 110 along with the user's mobile (E.164) number, thecredentials to be issued, encryption keys, and other informationcontained in the Personalization File for the specific request. ThePersonalization File may be a batch file that contains numerous recordsof credentials that are to be issued to individuals on their wirelessdevice 200, or could be a separate file record for each credential to beissued. In another embodiment, the Personalization File is transmittedto WCM 110 by issuer personalization server 130 which is incommunication with issuer cardholder system 120. Issuer personalizationserver communicates with personalization bureau server 140 which istypically maintained by the personalization bureau.

The Personalization File is preferably similar to the PersonalizationFile that credit card issuers send to personalization bureausresponsible for manufacturing, personalizing, and fulfillingmagnetic-stripe cards for issuance to customers. The PersonalizationFile received by personalization bureaus from credit card companiescontains all the necessary account and consumer data required to embossa card, encode the magnetic stripe, and fulfill the issued card viamail. Other information is sometimes also included in thePersonalization File depending on the additional services performed bythe Personalization Bureau. For example, the file may contain dataindicating a request of the Personalization Bureau to generate apersonal identification number (PIN) which may be mailed to thecustomer. This information or a subset thereof makes up thepersonalization file record that is transmitted by issuer cardholdersystem 120 to WCM 110 in connection with a credential issuance requestaccording to the present invention.

In the case where a user already has one or more credentials from theissuer, such as a magnetic-stripe credit card, and wishes to supplementthe card with a digital version of the credential on his or her wirelessdevice 200, the issuer can provide the user with a digital credentiallinked to the same magnetic-stripe account, but that bears a differentaccount number.

The full account number of the electronic credential issued to wirelessdevice 200 may not be visible to the user through the wallet application(discussed later), since the credential may have been issued for “devicepresent” transactions only as may be the case with certain credit cardsthat are issued. Account numbers and other information could also bepartially masked for security reasons with other credential types. Inall such cases, the issuer may specify in the security characteristicssuch as the visibility of account numbers or other information in thePersonalization File. For example, the issuer may specify that thewallet application should only make the last four digits of the accountnumber visible to the user on wireless device 200.

According to a preferred embodiment, WCM 110 will by default beconfigured to receive the mobile phone number (in the PersonalizationFile Record) in the format specified in section 2.1 of RFC 3761. Thisformat is herein referred to as the Application Unique String (AUS). TheAUS is a fully qualified E.164 number minus any non-digit charactersexcept for the “+” character which appears at the beginning of thenumber. The “+” is kept to provide a well understood anchor for the AUSin order to distinguish it from other telephone numbers that are notpart of the E.164 namespace. For example, the E.164 number could bestored in issuer's card management system 120 as “+1-202-555-1234”. Toensure consistent syntactic form, all non-digits except for “+” areremoved in the Personalization File sent to WCM 110, yielding“+12025551234”.

In order for an issuer to send confidential information to an approveduser's wireless device 200, WCM 110 must first validate that the phonenumber is a syntactically correct E.164 number and then translate thenumber into an address that can be used by a DNS resolver (see step320).

ENUM is only applicable for E.164 numbers. As an ENUM compliantapplication, WCM 110 will only query DNS for what it believes is anE.164 number. WCM 110 could in turn apply validation routines to ensurethat the number received from the issuer's card management system 120(and indirectly received from the user) is a syntactically correct E.164number. WCM 110 can perform basic formatting on phone numbers receivedin the Personalization File. While it is preferred that issuer's cardmanagement system 120 populate phone numbers in the Personalization Filein the AUS format mentioned above, WCM 110 may also have the ability tomake edits in order to ensure proper formatting.

The WCM validation routine may further be customized by the issuer to beregion specific; for example, an issuer in the United States that onlywants to issue electronic credentials to domestic users, may set thevalidation routine to reject all numbers that do not match the USnumbering format of +12025551234. While rules like this are preferablyenforced in the card issuer's user management system 120, they can bealso enforced by WCM 110. WCM 110 is preferably flexible to allow othertypes of validation routines to be programmed. WCM 110 of course cannotensure that a particular number is valid until it tries it.

After WCM 110 validates the E.164 number, it must translate the mobilephone number into an address that can be used by a DNS resolverintegrated into WCM 110 (see step 330). Because this address is based ona complete, international telephone number (for example, +12025551234),a unique Internet address exists for every unique phone number (once theENUM database is completely populated). To determine if the number andaddress are registered in ENUM, the telephone number is translated inthe following manner by WCM 110:

1) All characters with the exception of the digits are removed. Forexample, WCM 110 starts with the Application Unique String“+12025551234”. This step would simply remove the leading “+”, producing“12025551234”.

2) Dots (“.”) are added between each digit. Example:1.2.0.2.5.5.5.1.2.3.4

3) The order of the digits are reversed. Example: 4.3.2.1.5.5.5.2.0.2.1

4) The string “.e164.arpa” is appended to the end. Example:4.3.2.1.5.5.5.2.0.2.1.e164.arpa

This domain-name is used to request Naming Authority Pointer (NAPTR)resource records which may contain the end result or, if the flags fieldis blank, produces new keys in the form of domain-names from the DNS.WCM 110 interacts with the domain name space through its built inresolver. The resolver must have knowledge of at least one name server(likely on the issuer's network). The WCM resolver can be configuredwith multiple name servers.

When the resolver processes an ENUM query it asks a known name serverfor the information; in return, the resolver either receives the desiredinformation or a referral to another name server. Using these referrals,the resolver learns the identities and contents of other name servers.Resolvers in general are responsible for dealing with the distributionof the domain space and dealing with the effects of name server failureby consulting redundant databases in other servers. Note that theresolver may have to make several queries to several different externalname servers to answer a particular user query, and hence the resolutionof a ENUM query may involve several network accesses and an arbitraryamount of time.

The next step in the overall process of the present invention in apreferred embodiment calls for the retrieval of a NAPTR record (see step340). According to RFC 3761, the domain naming system uses the ENUMquery to retrieve a NAPTR record associated with the E.164 number. TheDNS response to the ENUM query contains one or more NAPTR recordscorresponding to the E.164 number, and each NAPTR record contains one ormore service-specific Uniform Resource Identifiers (URIs).

Thus, for the example ENUM name query given above, the following NAPTRrecords might be received:

$ORIGIN 4.3.2.1.5.5.5.2.0.2.1.e164.arpa.IN NAPTR 100 10 “u” “E2U+sip” “!̂{circumflex over ()}.*$!sip:bob@MobileCo.com!”.IN NAPTR 103 10 “u” “E2U+wallet” “!̂{circumflex over ()}.*$sips:bob@wallet.MobileCo.com!”.

WCM 110 will look for a NAPTR record associated with the “wallet”service. The registered ‘E2U+wallet’ enum service will function as aselection mechanism for WCM 110 when choosing one NAPTR resource recordfrom another. WCM 110 can select the corresponding URI and use theresolver a second time to translate the domain name part of the URI toan IP address using the URI-specific DNS resource record as a queryterm. WCM 110 can then use the full URI specification to open a sessionwith the selected service port and complete the service transaction withthe wallet application on the user's mobile device.

The packet format of the NAPTR RR is found in section 4 of RFC 4303.Examples of NAPTR records are shown below:

-   -   Order Pref. Flags Services Regexp Replacement        IN NAPTR 100 10 “u” “E2U+sip” “!̂{circumflex over (        )}.*$!sip:bob@mobileco.com!”. IN NAPTR 103 10 “u” “E2U+wallet”        “!̂{circumflex over ( )}.*$!sips:bob@wallet.mobileco.com!”.

NAPTR fields contain numerous components:

-   -   An Order field to specify the order in which multiple NAPTR        records must be processed    -   A Preference field to determine the processing order when        multiple records have the same order value    -   A Service field to specify the resolution protocol and service    -   Flags to modify the actions of further DNS lookups    -   A Regular Expression to allow the query client to rephrase the        original request in a DNS format    -   A Replacement field to define the next DNS query object

The Order field in the NAPTR record for the wallet service can be setwith the highest value since WCM 110 will be selecting a single recordthat contains the wallet enum service. The high value in the Order fieldwill also reduce the likelihood of other SIP applications cyclingthrough the records and incorrectly trying to communicate with thewallet application.

The flag “u” denotes a terminal lookup that will result in theproduction of a URI by the regular expression substitution specified.The “E2U+wallet” specifies a service to be contacted by SIP through theuse of an E.164 to URI (E2U) translation. The substitution“!.*$sips:bob@wallet.mobileco.com!” is then applied to the originalphone number (such as +12025551234) to yield the resultsips:bob@wallet.mobileco.com, which is used to resolve SIP addresses.

The replacement string is the resultant string(“sips:bob@wallet.mobileco.com”), which is to be used to initiate theSIP communication for issuing the credential to the specified wirelessdevice 200 (see step 350). The NAPTR format also specifies a method forvarious matches in the regular expression to be substituted into thereplacement string. This simple example does not require that althoughin actual operation, this feature may be used.

Enumservice registrations must be made with the IANA. A completeregistration will include the proposed “enumservice” field, the URIschemes, a functional specification, security considerations, intendedusage, and any other information intended to allow for theinteroperability within ENUM. Service Registration requirements areoutlined in RFC 3761.

According to the teachings of the present invention, the “enumservice”field is used to represent an electronic wallet application or serviceassociated with the E.164 phone number. Traditionally, the servicesfield of a NAPTR record (as defined in RFC 3403) contains a string thatis composed of two subfields: a ‘protocol’ subfield and a ‘resolutionservice’ subfield. ENUM in particular defines an ‘E2U’ (E.164 to URI)resolution service and a service ‘Type’ that is registered with theIANA. Note that the token “sip” that is shown as an example above is aType registered with the IANA. The Type “wallet” however, is shown forillustrative purposes. The Types have no implicit connection with theprotocols or URI schemes even though they can bear the same name.

According to the teachings of the present invention the ‘E2U’ resolutionservice is used in conjunction with a Type that represents an electronicwallet application or service. For example, an ‘E2U+wallet’ enumservicethat indicates the presence of an electronic wallet application runningon a mobile phone or on other systems connected to the Internet may beused. While the example above uses the theoretical “wallet” Type, theactual label that is registered with the IANA for this purpose could bedifferent. The service parameters including guidelines for the Typefield can be found in section 2.4.2 of RFC 3761. The ‘type’ must beunique and comply with other naming requirements outlined in section3.1.2 of RFC 3761.

The scheme of the URI that will appear in a NAPTR record using the‘E2U+wallet’ enumservice may be either ‘SIP’ or ‘SIPS’. While SIPSoffers greater security, there may be reasons for using SIP that are notcontemplated herein. Furthermore, the use of application protocols otherthan SIP and SIPs in conjunction with the ‘E2U+wallet’ enumservice inthe NAPTR records is also possible. The ability to support anotherenumservice in addition to the ‘sE2U+wallet’ enumservice in the sameNAPTR RR is also possible (reference section 8, RFC 3761).

As ENUM uses DNS, which in its current form is an insecure protocol,there is no mechanism for ensuring that the data one gets back isauthentic. As ENUM is deployed on the global Internet, it is expected tobe a popular target for various kinds of attacks, and attacking theunderlying DNS infrastructure is one way of attacking the ENUM serviceitself. There are multiple types of attacks that can happen against DNSthat ENUM implementations should be aware of. Section 6.1 of RFC 3761lists threats that are taken from Threat Analysis of the Domain NameSystem.

Because of those threats, WCM 110 preferably includes mechanisms whichameliorate these threats. For example, some of these threats can besolved by verifying the authenticity of the data via mechanisms such asDNSSEC, which will be supported by WCM 110. WCM 110 will be prepared toreceive DNSSEC and other standardized DNS security responses, includinglarge responses, EDNSO signaling, and unknown RRs.

SIP (Session Initiation Protocol, RFC 3261) is a text-based applicationprotocol that allows two endpoints in the Internet to discover oneanother in order to exchange context information about a session theywould like to share. Common applications for SIP include Internettelephony, instant messaging, video, Internet gaming, and other forms ofreal-time communications. SIP is a multi-service protocol capable ofinitiating sessions involving different forms of real-timecommunications simultaneously.

SIP is an application-layer control protocol that can establish, modify,and terminate multimedia sessions such as Internet telephony calls. SIPcan also invite participants to already existing sessions such asmulticast conferences. SIP transparently supports name mapping andredirection services, which supports personal mobility—users canmaintain a single externally visible identifier regardless of theirnetwork location.

SIP supports five facets of establishing and terminating multimediacommunications:

1. User Location: Determination of the end system to be used forcommunication;

2. User Availability: Determination of the willingness of the calledparty to engage in communications;

3. User capabilities: Determination of the media and media parameters tobe used;

4. Session Setup: “Ringing”, Establishment of session parameters at bothcalled and calling party;

5. Session Management: Including transfer and termination of sessions,modifying session parameters, and invoking services.

SIP was developed by the IETF as part of the Internet MultimediaConferencing Architecture, and was designed to dovetail with otherInternet protocols such as Transmission Control Protocol (TCP),Transmission Layer Security (TLS), User Datagram Protocol (UDP),Internet Protocol (IP), Domain Name System (DNS), and others. SIP workswith both IPv4 and IPv6.

SIP is based on an HTTP-like request/response transaction model. Eachtransaction consists of a request that invokes a particular method, orfunction, on the server and at least one response. SIP uses most of theheader fields, encoding rules, and status codes of HTTP. This provides areadable text-based format for displaying information. SIP incorporatesthe use of Session Description Protocol (SDP), which defines sessioncontent using a set of types similar to those used in MultipurposeInternet Mail Extensions (MIME). Technically, SIP will function acrossboth IPv4 and IPv6 networks.

SIP can provide a set of services that is more diverse, compelling andprofitable than any of the contemporary wireless protocols includingWAP, SMS and MMS. SIP allows the development of services that can blendvoice, presence, the Web, instant messaging, unified messaging and manyothers. Carriers who deploy SIP-based infrastructure will be able tooffer more differentiated and profitable services than theircounterparts, which will correspondingly allow them to realize higherrevenues, higher profits and lower chum.

The present invention, in a preferred embodiment provides for using someof the SIP-network infrastructure that mobile operators will have inplace to deliver credentials from SIP-based Wireless Credential Manager(WCM) 110 at an issuer site to a SIP-based wallet application on awireless device 200. The system disclosed herein is designed tointeroperate with mobile 2.5G, 3G, and Wi-Fi networks among others.

It will be understood that the components shown in FIG. 1 are merelyexemplary of one embodiment of the present invention and the inventionis not necessarily limited thereto.

Turning now to FIG. 3, a discussion of the present invention in thecontext of SIP and related functionality is now provided. As statedabove, although the present invention is disclosed in the context ofSIP, other protocols and related components may be used while stillremaining within the scope and spirit of the present invention.

FIG. 3 illustrates some of the SIP components, their relationship to oneanother and the protocols that are employed. A user agent acting as aclient (in this case the issuer WCM 410 which is in communication withissuer card management system 420) uses SIP to set up a session with auser agent that acts as a server (in this case a wallet applicationoperating on user's wireless device 400). The session initiationdialogue uses SIP and involves one or more proxy servers to forwardrequests and responses between the two user agents. The user agents alsomake use of the SDP, which is used to describe the media session.

The proxy servers 450 may also act as redirect servers as needed. Ifredirection is done, the proxy server 450 needs to consult the locationservice database 460, which may or may not be colocated with the proxyserver 450. The Domain Name System (DNS) 470 is also an important partof SIP operation. Typically, a user agent client (UAC) makes a requestusing the domain name of the user agent server (UAS), rather than an IPaddress. Proxy server 450 thus needs to consult DNS server 470 to find aproxy server 450 for the target domain.

SIP often runs on top of the User Datagram Protocol (UDP) forperformance reasons, and provides its own reliability mechanisms, butmay also use TCP. If a secure, encrypted transport mechanism is desired,SIP messages may alternatively be carried over the Transport LayerSecurity (TLS) protocol.

Associated with SIP is the SDP, defined in RFC 2327. SIP is used toinvite one or more participants to a session, while the SDP-encoded bodyof the SIP message contains information about what media encodings (forexample, voice, video) the parties can and will use. After thisinformation is exchanged and acknowledged, all participants are aware ofthe participants' IP addresses, available transmission capacity, andmedia type. Then, data transmission begins, using an appropriatetransport protocol. Typically, the RTP is used. Throughout the session,participants can make changes to session parameters, such as new mediatypes or new parties to the session, using SIP messages.

The Session Description Protocol (SDP), defined in RFC 2327, describesthe content of sessions, including telephony, Internet radio, andmultimedia applications. SDP includes information about:

Media streams: A session can include multiple streams of differingcontent. SDP currently defines audio, video, data, control, andapplication as stream types, similar to the MIME types used for Internetmail.Addresses: SDP indicates the destination addresses, which may be amulticast address, for a media stream.Ports: For each stream, the UDP port numbers for sending and receivingare specified.Payload types: For each media stream type in use (for example,telephony), the payload type indicates the media formats that can beused during the session.Start and stop times: These apply to broadcast sessions, for example, atelevision or radio program. The start, stop, and repeat times of thesession are indicated.Originator: For broadcast sessions, the originator is specified, withcontact information. This may be useful if a receiver encounterstechnical difficulties.

Although SDP provides the capability to describe multimedia content, itlacks the mechanisms by which two parties agree on the parameters to beused. RFC 3264 remedies this lack by defining a simple offer/answermodel, by which two parties exchange SDP messages to reach agreement onthe nature of the multimedia content to be transmitted.

A resource within a SIP configuration is identified by a URI. Examplesof communications resources include the following:

A user of an online service

An appearance on a multiline phone

A mailbox on a messaging system

A telephone number at a gateway service

A group (such as “sales” or “help desk”) in an organization

SIP URIs have a format based on e-mail address formats, namelyuser@domain. There are two common schemes. An ordinary SIP URI is of theform: sip:bob@biloxi.com. The URI may also include a password, portnumber, and related parameters. If secure transmission is required,“sip:” is replaced by “sips:”. In the latter case, SIP messages aretransported over TLS.

Now that a general description of the methodology and components of thepresent invention has been provided, the following discussion providesexamples of the use of the SIP protocol for issuing, canceling andupdating credentials on a wireless device according to the teachings ofthe present invention.

The first example shows the basic functions of SIP: location of an endpoint, signal of a desire to communicate, negotiation of sessionparameters to establish the session, and teardown of the session onceestablished.

FIG. 4 shows a typical example of a SIP message exchange between acredential issuer (named herein Sample Bank) and a fictitious mobileuser named Bob. (Each message is labeled with the letter “F” and anumber for reference by the text.) In this example, SIP signalingfunctionality embedded in the Wireless Credential Manager (WCM) 510 isused to issue Bob a Sample Bank MasterCard on his SIP-enabled mobiledevice 500 via the Internet. Also shown are two SIP proxy servers thatact on behalf of Sample Bank and Bob's mobile operator (MobileCo) tofacilitate session establishment. This typical arrangement is oftenreferred to as the “SIP trapezoid” as shown by the geometric shape ofthe dotted lines in FIG. 4.

WCM 510 may initiate communication with a wallet application on Bob'swireless device 500 through a SIP proxy server on MobileCo's networkthat also handles voice, instant messaging, and other services.

WCM 510 initiates a “call” to Bob using his SIP identity, a type ofUniform Resource Identifier (URI) called a SIP URI. URIs are defined inSection 19.1 of RFC 3261. The URI corresponding to Bob's walletapplication was obtained from the NAPTR record that resulted from theENUM query performed by WCM 510 on Bob's mobile phone number. It has asimilar form to an email address, typically containing a username and ahost name. In this case, it is sips:bob@wallet.mobileco.com, wheremobileco.com is the domain of Bob's SIP service provider. The SampleBank WCM 510 has a SIP URI of sips:wcm.samplebank.com.

A call made to a ‘SIPS’ URI guarantees that secure, encrypted transport(namely TLS) is used to carry all SIP messages from the caller to thedomain of the callee. From there, the request is sent securely to thecallee, but with security mechanisms that depend on the policy of thedomain of the callee.

As previously mentioned, SIP is based on an HTTP-like request/responsetransaction model. Each transaction consists of a request that invokes aparticular method, or function, on the server and at least one response.In this example, the transaction begins with WCM 510 sending an INVITErequest addressed to Bob's SIPS URI. The INVITE request contains anumber of header fields. Header fields are named attributes that provideadditional information about a message. The ones present in an INVITEinclude a unique identifier for the call, the destination address, theWCM address, and information about the type of session that WCM 510wishes to establish with Bob. The INVITE (message F1 in FIG. 4) mightlook like this:

INVITE sips:bob@wallet.mobileco.com SIP/2.0

Via: SIP/2.0/TLS wcm.samplebank.com;branch=z9hG4bK776asdhds

Max-Forwards: 70

To: Bob Smith <sips:bob@wallet.mobileco.com>

From: Samplebank <sips:WCM.samplebank.com>;tag=1928301774

Call-ID: a84b4c76e66710@WCM.samplebank.com

CSeq: 314159 INVITE

Contact: <sips:wcm.samplebank.com>

Content-Type: application/sdp

Content-Length: 142 [0143] (Sample Bank's SDP not shown)

The first line of the text-encoded message contains the method name(INVITE). The lines that follow are a list of header fields. Thisexample contains a minimum required set. The header fields are brieflydescribed below:

Via contains the address (wcm.samplebank.com) at which Sample Bank'sWireless Credential Manager is expecting to receive responses to thisrequest. It also contains a branch parameter that identifies thistransaction.

To contains a display name (Bob Smith) and a SIP or SIPS URI(sips:bob@wallet.mobileco.com) towards which the request was originallydirected. Display names are described in RFC 2822.

From also contains a display name (Sample Bank) and a SIP or SIPS URI(sips:wcm.samplebank.com) that indicate the originator of the request.This header field also has a tag parameter containing a random string(1928301774) that was added to the URI by the Sample Bank WCM 510. It isused for identification purposes.

Call-ID contains a globally unique identifier for this call, generatedby the combination of a random string and the WCM host name or IPaddress. The combination of the To tag, From tag, and Call-ID completelydefines a peer-to-peer SIP relationship between the WCM 510 and Bob andis referred to as a dialog.

CSeq or Command Sequence contains an integer and a method name. The CSeqnumber is incremented for each new request within a dialog and is atraditional sequence number.

Contact contains a SIP or SIPS URI that represents a direct route tocontact the WCM 510, usually composed of a username at a fully qualifieddomain name (FQDN). While an FQDN is preferred, many end systems do nothave registered domain names, so IP addresses are permitted. While theVia header field tells other elements where to send the response, theContact header field tells other elements where to send future requests.

Max-Forwards serves to limit the number of hops a request can make onthe way to its destination. It consists of an integer that isdecremented by one at each hop.

Content-Type contains a description of the message body (not shown).

Content-Length contains an octet (byte) count of the message body.

The complete set of SIP header fields is defined in Section 20 of RFC3261. The details of the session, such as the type of media, codec, orsampling rate, are not described using SIP. Rather, the body of a SIPmessage contains a description of the session, encoded in some otherprotocol format. One such format is the Session Description Protocol(SDP) (RFC 2327. This SDP message (not shown in the example) is carriedby the SIP message in a way that is analogous to a document attachmentbeing carried by an email message, or a web page being carried in anHTTP message.

Since WCM 510 does not know the location of Bob or the SIP server in themobileco.com domain, WCM 510 sends the INVITE to the SIP server thatserves Sample Bank's domain, samplebank.com. The address of the SampleBank SIP server (sip.samplebank.com) could have been configured in WCM510, or it could have been discovered by DHCP, for example. It should benoted that for illustrative purposes the SIP proxy functionality wasshown as a being a separate server from WCM 510; in reality the proxyfunctionality is a part of WCM 510. The proxy component of WCM 510 is animportant aspect of this system and the overall methodology.

The Sample Bank SIP server 520 (sip.samplebank.com) is a type of SIPserver known as a proxy server. A proxy server receives SIP requests andforwards them on behalf of the requester. In this example, the proxyserver 520 receives the INVITE request and sends a 100 (Trying) responseback to Sample Bank WCM 510. The 100 (Trying) response indicates thatthe INVITE has been received and that the proxy is working on behalf ofWCM 510 to route the INVITE to the destination. Responses in SIP use athree-digit code followed by a descriptive phrase. This responsecontains the same To, From, Call-ID, CSeq and branch parameter in theVia as the INVITE, which allows WCM 510 to correlate this response tothe sent INVITE.

The sip.samplebank.com proxy server 520 locates the proxy server“wallet.mobileco.com” 530 quite easily as this implementation assumesthat the use of a subdomain such as “wallet” is a standard by which WCM510 can identify a proxy server within the operator's network. In otherinstances where a subdomain may not be part of the URI that is retrievedfrom the NAPTR record, the Sample Bank proxy server 520 can identify aproxy server within the operator's network possibly by performing aparticular type of DNS (Domain Name Service) lookup to find the SIPserver that serves the mobileco.com domain. This is described in RFC3263. Either way, it obtains the IP address of the wallet.mobileco.comproxy server 530 and forwards, or proxies, the INVITE request there.

Before forwarding the request, the sip.samplebank.com proxy server 520adds an additional Via header field value that contains its own address(the INVITE already contains the WCM address in the first Via). Thewallet.mobileco.com proxy server 530 receives the INVITE and respondswith a 100 (Trying) response back to the sip.samplebank.com proxy server520 to indicate that it has received the INVITE and is processing therequest. The proxy server consults a database, generically called alocation service, that contains the current IP address of Bob. Thewallet.mobileco.com proxy server 530 adds another Via header field valuewith its own address to the INVITE and proxies it to Bob's SIP enabledmobile phone 500 with the wallet application.

The wallet application on Bob's SIP phone 500 receives the INVITE. TheINVITE message received by the wallet application prompts theapplication to alert Bob of the incoming communication from Sample Bank.The alert mechanism used by the wallet application could use thewireless device's internal capability such as generating a tone orvibrating. In addition to the tone or vibration, the device display maygive Bob additional details of the incoming communication from SampleBank so that Bob can decide whether to accept connectivity with SampleBank's server for the purpose of receiving the Sample Bank MasterCardcredential. Bob's SIP phone 500 indicates this in a 180 (Ringing)response, which is routed back through the two proxies in the reversedirection. Each proxy uses the Via header field to determine where tosend the response and removes its own address from the top. As a result,although DNS and location service lookups were required to route theinitial INVITE, the 180 (Ringing) response can be returned to the callerwithout lookups or without state being maintained in the proxies. Thisalso has the desirable property that each proxy that sees the INVITEwill also see all responses to the INVITE.

In the next example, the 180 (Ringing) response is routed to the SampleBank WCM 510. In this example, Bob decides to allow connectivity withthe Sample Bank server 510 by pressing a key on his phone (as promptedfor by the wallet application). After he presses the appropriate key toaccept connectivity with Sample Bank's server 510, his SIP phone 500sends a 200 (OK) response to indicate that the call has been answered bythe wallet application. The 200 (OK) contains a message body with theSDP media description of the type of session that the wallet applicationrunning on Bob's SIP phone 500 is willing to establish with the SampleBank WCM 510. As a result, there is a two-phase exchange of SDPmessages: the WCM 510 sent one to Bob's wallet application, and thewallet application sent one back to the WCM 510. This two-phase exchangeprovides basic negotiation capabilities and is based on a simpleoffer/answer model of SDP exchange. If Bob did not wish to answer thecommunication from Sample Bank or was busy on a phone call, an errorresponse would have been sent instead of the 200 (OK), which would haveresulted in no media session being established between the walletapplication on Bob's phone 500 and the Sample Bank WCM 510. The completelist of SIP response codes is in Section 21 of RFC 3261. The 200 (OK)(message F9 in FIG. 4) might look like this as Bob's wallet applicationsends it out:

SIP/2.0 200 OK

Via: SIP/2.0/TLS wallet.mobileco.com

;branch=z9hG4bKnashds8;received=192.0.2.3

Via: SIP/2.0/TLS sip.samplebank.com

;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2

Via: SIP/2.0/TLS wcm.samplebank.com

;branch=z9hG4bK776asdhds ;received=192.0.2.1

To: Bob Smith <sips:bob@wallet.mobileco.com>;tag=a6c85cf

From: Samplebank <sips:wcm.samplebank.com>;tag=1928301774

Call-ID: a84b4c76e66710@wcm.samplebank.com

CSeq: 314159 INVITE

Contact: <sips:bob@ 192.0.2.4>

Content-Type: application/sdp

Content-Length: 131

(Bob's SDP not shown)

The first line of the response contains the response code (200) and thereason phrase (OK). The remaining lines contain header fields. The Via,To, From, Call-ID, and CSeq header fields are copied from the INVITErequest. (There are three Via header field values—one added by theSample Bank WCM 510, one added by the sip.samplebank.com proxy 520, andone added by the wallet.mobileco.com proxy 520). Bob's SIP phone 500 hasadded a tag parameter to the To header field. This tag will beincorporated by both endpoints into the dialog and will be included inall future requests and responses in this communication. The Contactheader field contains a URI at which Bob can be directly reached at hisSIP phone 500. The Content-Type and Content-Length refer to the messagebody (not shown) that contains Bob's SDP media information.

In addition to DNS and location service lookups shown in this example,proxy servers can make flexible “routing decisions” to decide where tosend a request. In this case, the 200 (OK) is routed back through thetwo proxies and is received by the WCM 510, which then stops theringback tone and indicates that the “call” has been answered. Finally,the WCM 510 sends an acknowledgement message, ACK, to the walletapplication on Bob's SIP phone 500 to confirm the reception of the finalresponse (200 (OK)). In this example, the ACK is sent directly from theWCM 510 to the wallet application on Bob's SIP phone 500, bypassing thetwo proxies. This occurs because the endpoints have learned each other'saddress from the Contact header fields through the INVITE/200 (OK)exchange, which was not known when the initial INVITE was sent. Thelookups performed by the two proxies are no longer needed, so theproxies drop out of the call flow. This completes the INVITE/200/ACKthree-way handshake used to establish SIP sessions. Full details onsession setup are in Section 13 of RFC 3261.

The use of a SIP architecture to locate a mobile end-user and toestablish direct communication between the end-points (WCM and walletapplication) for the purpose of transferring confidential information(e.g. credentials) is an important aspect of the present invention. Thedirect connection between the end-points using SIP offers a securemethod, without intermediary servers, by which to transmit confidentialinformation.

The media session between the Sample Bank WCM 510 and the walletapplication on Bob's SIP enabled mobile phone 500 has now begun, andthey can send data packets using the format to which they agreed in theexchange of SDP. In general, the end-to-end data packets take adifferent path from the SIP signaling messages.

The established session may initially be used to exchange encryptionkeys and/or other security information. Subsequent to that, the issuer'ssystem will authenticate the mobile user's identity in real-time toensure that the person on the receiving end is in fact the person thatrequested the digital credential. The authentication process can beaccomplished by the issuer system prompting the user for some cardholderor accountholder authentication information contained within its system,that only the rightful accountholder would have. The user would see sucha request for information within the wallet application screen on thedevice display. This could include a request for such information suchas an existing card account number, card expiration date, cardholdername, mother's maiden name, billing address, social security number,account balance, transaction history, driver's license number, orbusiness identification. The issuer could also request a special code orPIN that was mailed to the user in advance of the issuance as a means tofurther validate identity and ensure non-repudiation. Some of the inputinformation individually, or a combination of certain input informationcould be used as a decryption key for a credential that is transmittedto the wireless device. Subsequent to the issuer's system validating theuser's identity in real-time, the WCM 510 will transmit the credentialto the wallet application.

During the peer-to-peer session, either the WCM 510 or the walletapplication on Bob's phone 500 may decide to change the characteristicsof the media session. This is accomplished by sending a re-INVITEcontaining a new media description. This re-INVITE references theexisting dialog so that the other party knows that it is to modify anexisting session instead of establishing a new session. The other partysends a 200 (OK) to accept the change. The requestor responds to the 200(OK) with an ACK. If the other party does not accept the change, hesends an error response such as 488 (Not Acceptable Here), which alsoreceives an ACK. However, the failure of the re-INVITE does not causethe existing call to fail—the session continues using the previouslynegotiated characteristics. Full details on session modification are inSection 14 of RFC 3261.

At the end of the communication session (in this example), Bob's walletapplication disconnects (hangs up) first and generates a BYE message.This BYE is routed directly to the WCM 510, again bypassing the proxies.The WCM 510 confirms receipt of the BYE with a 200 (OK) response, whichterminates the session and the BYE transaction. No ACK is sent—an ACK isonly sent in response to a response to an INVITE request. The reasonsfor this special handling for INVITE relate to the reliabilitymechanisms in SIP, the length of time it can take for a “ringing”application to be answered, and forking. For this reason, requesthandling in SIP is often classified as either INVITE or non-INVITE,referring to all other methods besides INVITE. Full details on sessiontermination are in Section 15 of RFC 3261. While the above example showsthe wallet application terminating the session first, during actualimplementation, the WCM 510 may terminate the session first.

In some cases, it may be useful for proxies in the SIP signaling path tosee all the messaging between the endpoints for the duration of thesession. For example, if the sip.samplebank.com proxy server 520 wishedto remain in the SIP messaging path beyond the initial INVITE, it wouldadd to the INVITE a required routing header field known as Record-Routethat contained a URI resolving to the hostname or IP address of theproxy. This information would be received by both Bob's SIP phone 500and (due to the Record-Route header field being passed back in the 200(OK)) the WCM 510 and stored for the duration of the dialog. Thesip.samplebank.com proxy server would then receive and proxy the ACK,BYE, and 200 (OK) to the BYE. Each proxy can independently decide toreceive subsequent messages, and those messages will pass through allproxies that elect to receive it. This capability is frequently used forproxies that are providing mid-call features. While it is not preferredto use any mid-session features for the purpose of issuing, canceling,or updating credentials, there could be reasons for using it which arenot discussed herein.

SIP offers a discovery capability. If a user wants to initiate a sessionwith another user, SIP must discover the current host(s) at which thedestination user is reachable. This discovery process is frequentlyaccomplished by SIP network elements such as proxy servers and redirectservers which are responsible for receiving a request, determining whereto send it based on knowledge of the location of the user, and thensending it there. To do this, SIP network elements consult an abstractservice known as a location service, which provides address bindings fora particular domain. These address bindings map an incoming SIP or SIPSURI, sips:bob@wallet.mobileco.com, for example, to an associated IPaddress of the registering wireless device, 192.0.2.4, for example.Ultimately, a proxy will consult a location service that maps a receivedURI to the user agent(s) at which the desired recipient is currentlyresiding. According to the present invention, a unique URI may be usedto represent a wallet application functioning on a wireless device orserver, and it may be mapped it to an IP address in a location service.

Registration is one way that the wallet.mobileco.com server can learnBob's current location. Upon initialization, and at periodic intervals,the wallet application on Bob's SIP phone sends REGISTER messages to aserver in the mobileco.com domain known as a SIP registrar. The REGISTERmessages associate Bob's SIP or SIPS URI (sips:bob@wallet.mobileco.com)with the network address currently assigned to his wireless device(conveyed as a SIP or SIPS URI in the Contact header field). While it isstated that the wallet application is performing the registration, a SIPenabled phone (with multiple SIP applications running on it) mayregister itself and all active SIP applications at once with theregistration server. In this example, a unique URI is associated withthe wallet application; during actual implementation, the same URI couldbe used for multiple applications on the same device.

The registrar writes this association, also called a binding, to adatabase, called the location service, where it can be used by thewallet.mobileco.com proxy. Often, a registrar server for a domain isco-located with the proxy for that domain. It is an important conceptthat the distinction between types of SIP servers is logical, notphysical.

The location service is just an abstract concept. It generally containsinformation that allows a proxy to input a URI and receive a set of zeroor more URIs that tell the proxy where to send the request.Registrations are one way to create this information, but not the onlyway. Arbitrary mapping functions can be configured at the discretion ofthe administrator.

Finally, it is important to note that in SIP, registration is used forrouting incoming SIP requests and has no role in authorizing outgoingrequests. Authorization and authentication are handled in SIP either ona request-by-request basis with a challenge/response mechanism, or byusing a lower layer scheme as discussed in Section 26 of RFC 3261. Theuse of authorization and authentication schemes between the walletapplication and the mobile operator's SIP proxy is an important part ofthe present invention.

The complete set of SIP message details for this registration example isin Section 24.1 of RFC 3261. Additional operations in SIP, such asquerying for the capabilities of a SIP server or client using OPTIONS,or canceling a pending request using CANCEL, are addressed in RFC 3261.

An illustration of the overall registration process is given in FIG. 5.Note that the registrar 610 and proxy server 630 are logical roles thatcan be played by a single device in a network; for purposes of claritythe two are separated in this illustration. Also note that UAs may sendrequests through a proxy server in order to reach a registrar if the twoare separate elements.

SIP does not mandate a particular mechanism for implementing thelocation service 620. The only requirement is that a registrar for somedomain MUST be able to read and write data to the location service 620,and proxy or a redirect server 630 for that domain MUST be capable ofreading that same data. Registrar 610 MAY be co-located with aparticular SIP proxy server 630 for the same domain. As noted earlier,in some cases the SIP-enabled wireless device may register itself, thusenabling communication with all SIP-based applications operating on thedevice.

REGISTER requests add, remove, and query bindings. A REGISTER requestcan add a new binding between an address-of-record and one or morecontact addresses. A client can also remove previous bindings or queryto determine which bindings are currently in place for anaddress-of-record. The SIP compliant wallet application running on thewireless device is capable of handling such REGISTER requests. If aSIP-based wallet application has a unique URI associated with it, andthe application is subsequently deleted by the user from the device, theapplication will remove its own binding as discussed above prior to thedeletion.

Presence is a vital aspect of SIP technology. Presence is the notionthat the current state of an entity, particularly its communicationsstate, can be exposed and represented in a standardized, sharable way.Entities so represented need not be human or singular. For example adevice status, user status, or application status might be captured as aPresence Status (for example “Device Status=Off-Hook”, “UserStatus=Online”, or “Application Status=Not Loaded”). Starting with asimple definition of “Online/Offline” status, Presence Status has beenextended to include other context information around the status such asdisposition (out-to-lunch, away-from the-computer) and activity status(on the phone, idle, etc.).

SIP presence and availability build on the SIP event notificationmechanism (RFC 3265) and on the registrar and other servers. Scripts canbe set up at the server to route calls based on inspection of the INVITEmessage. A presence server uses SIP SUBSCRIBE/NOTIFY with a presenceevent package to gather a User Agent's presence status and sendresponses to a watcher interested in the presence status of a specificentity.

The next example makes use of the SUBSCRIBE method from RFC 3265 thatcan be used by a user agent to establish a subscription for the purposeof receiving notifications (via the NOTIFY method) about a particularevent. Suppose that in the preceding example, the Sample Bank WCM wasinformed that Bob's device was off-line. The Sample Bank WCM can thenissue a SUBSCRIBE message, indicating that it wants to be informed whenBob is available.

This request is forwarded through the two proxies in our example to aPresence Server. In this example, we assume that the Presence Serverlogic is co-located with the location service. The Presence Serverauthorizes subscription by returning an OK message, which is passed backto the WCM. The Presence Server then immediately sends a NOTIFY messagewith Bob's current status of not signed in, which the Sample Bank WCMacknowledges.

Continuing with the example, at some point in the future, Bob's wirelessdevice signs on by sending a REGISTER message to the proxy in itsdomain. The proxy updates the database in the location service toreflect registration. The update is confirmed to the proxy, whichconfirms the registration back to Bob's wireless device. With Bob's newstatus recorded in the location service, the Presence Service could senda NOTIFY message containing Bob's new status to the Sample Bank WCM. TheSample Bank WCM acknowledges receipt of the notification and can in turnre-try to initiate communication with the wireless application on Bob'swireless device.

The present invention also contemplates a SUBSCRIBE functionality thatis compliant with RFC 3265 as well as support for the SUBSCRIBEfunctionality in a Presence Server to NOTIFY the WCM of a change instatus of a wireless device with a wallet application. The SUBSCRIBEfunctionality is an important feature of the invention since wirelessdevices may not always be connected to a network and be reachable. Thisfeature allows the WCM to be notified when a wallet application on anend-user device can be re-contacted in order to initiate a peer-to-peerconnection for transferring confidential information.

Another unique aspect of the present invention is the use of anApplication Status in conjunction with a Presence Service. ApplicationStatus could be used for, among other things, to inform a “caller” thatthe receiving party does not have an application to support the incomingrequest or media type. This Presence Information can be used to “push”an application to the receiving party over-the-air so the “caller” canestablish communication with the recipient in the future. Continuingwith the example above, if the Application Status was returned to thePresence Service as “Not Loaded”, the mobile operator's Presence Servicecould initiate a request to a separate server that sends a message tothe wireless end-user's handset, asking him if he would like to downloadthe wallet application in order to receive credentials from differentissuers such as the one that tried to communicate with his wirelessdevice. If the user agrees, the application can be provisioned on theuser's device over-the-air. Once installed, the application can informthe Presence Service of its new status to allow it to inform the SampleBank WCM that it is ready to communicate. The use of an ApplicationStatus in conjunction with a Presence Service and an over-the-airsoftware provisioning system for wireless and wireline devices areimportant aspects of the present invention. The WCM, the walletapplication, and other SIP systems described herein may also supportpresence as a capability using various SIP extensions such as the SIPInstant Messaging and Presence Leveraging Extensions (SIMPLE).

In order to discover a Registrar, the SIP-based wallet applicationrunning on the mobile phone is pre-configured with the appropriateregistrar address. The mobile operator will have the ability to changethe registrar address over-the-air. In cases where there is a SIPapplication stack installed on the wireless device, the registraraddress may be configured in there.

The following discussion covers security mechanisms and procedures whichmay be used in a preferred embodiment of the system of the presentinvention. Since the SIP message structure is a straight derivation fromthe HTTP request/response model, all security mechanisms available forHTTP (RFC 2617) can also be applied to SIP sessions. The use of MIMEcontainers within SIP messages supports the use of email securitymechanisms S/MIME (RFC 2633). And of course similar to a https: URI, acorresponding sips: URI will try to build up a secure transport layertunnel using TLS (RFC 2246). And last but not least IP security (IPsec)(RFC 2315) can be used as a general purpose mechanism to encrypt all IPbased communication right on the network layer.

The major security mechanisms suited for the protection of a SIP sessionare summarized here. Some or all of these security mechanisms can beused to securely deliver or manage credentials on a wireless device.Support for these mechanisms may be accomplished in the WCM or thewallet application or both. Implementations may support other securityschemes as well.

One possible mechanism is HTTP Digest Authentication. The Digestauthentication scheme is based on a simple challenge-response paradigm.The digest authentication scheme challenges the remote end using a noncevalue. SIP digest authentication is based on the digest authenticationdefined in RFC 2617. Here, a valid response contains a checksum (bydefault, the MD5 checksum) of the user name, the password, the givennonce value, the HTTP method, and the requested URI. In this way, thepassword is never sent in the clear.

Another possible security mechanism is Secure MIME (S/MIME). SIPmessages carry MIME bodies. MIME itself defines mechanisms for theintegrity protection and the encryption of the MIME contents. SIP mayutilize S/MIME to enable mechanisms like public key distribution,authentication and integrity protection, or confidentiality of SIPsignaling data. S/MIME may be considered as a replacement for PGP usedin RFC2543 to provide means for integrity protection and encryption ofSIP messages. To be able to protect SIP header fields as well, tunnelingof SIP messages in MIME bodies is specified. Generally the proposed SIPtunneling for SIP header protection will create additional overhead.S/MIME requires certificates and private keys to be used, whereas thecertificates may be issued by a trusted third party or may beself-generated. The latter case may not provide real user authenticationbut may be used to provide a limited form of message integrityprotection.

The current document RFC 3261 recommends S/MIME to be used for UAs.Moreover, if S/MIME is used to tunnel messages (described below) it isrecommend using a TCP connection because of the larger messages. This isto avoid problems that may arise by the fragmentation of UDP packets.The following services can be realized:

Authentication and Integrity Protection of Signaling Data

Confidentiality of Signaling Data

Yet another security mechanism which may be used in accordance with thepresent invention is based upon SIPS URI (TLS). RFC3261 mandates the useof TLS for proxies, redirect servers, and registrars to protect SIPsignaling. Using TLS for UAs is recommended. TLS is able to protect SIPsignaling messages against loss of integrity, confidentiality andagainst replay. It provides integrated key-management with mutualauthentication and secure key distribution. TLS is applicable hop-by-hopbetween UAs/proxies or between proxies. The drawback of TLS in SIPscenarios is the requirement of a reliable transport stack (TCP-basedSIP signaling). TLS cannot be applied to UDP-based SIP signaling.

Another security mechanism which may be used in connection with thepresent invention is IP Security (IPsec). IPsec may also be used toprovide security for SIP signaling at the network layer. This type ofsecurity is most suited to securing SIP hosts in a SIP VPN scenario (SIPuser agents/proxies) or between administrative SIP domains. IPsec worksfor all UDP, TCP and SCTP based SIP signaling. IPsec may be used toprovide authentication, integrity and confidentiality for thetransmitted data and supports end-to-end as well as hop-by-hopscenarios. At this time there is no default cipher suite for IPsecdefined in SIP. Note: RFC 3261 does not describe a framework for the useof IPsec. Especially, no information is given as to how the keymanagement is to be realized, or which IPsec header and mode is to beused.

In order to provide security implementation (see RFC 3261), variousrequirements exist. It is intended that the proxy servers and registrarswill support TLS, and both mutual and one-way authentication. It is alsointended that the WCM and the wallet application will be capableinitiating TLS. Proxy servers, redirect servers, and registrars may usea site certificate whose subject corresponds to their canonicalhostname. UAs may have certificates of their own for mutualauthentication with TLS. All SIP elements that support TLS should have amechanism for validating certificates received during TLS negotiation;this entails possession of one or more root certificates issued bycertificate authorities (preferably well-known distributors of sitecertificates comparable to those that issue root certificates for webbrowsers). Further, all SIP elements that support TLS should support theSIPS URI scheme.

Proxy servers, redirect servers, registrars, and UAs may implement IPSecor other lower-layer security protocols. When a UA attempts to contact aproxy server, redirect server, or registrar, the UAC should initiate aTLS connection over which it will send SIP messages. In somearchitectures, UASs may receive requests over such TLS connections aswell.

Proxy servers, redirect servers, registrars, and UAs should implementDigest Authorization, encompassing all of the aspects required inSection 22 of RFC 3261. Proxy servers, redirect servers, and registrarsshould be configured with at least one Digest realm, and at least one“realm” string supported by a given server should correspond to theserver's hostname or domain name.

The WCM and the wallet application should support the signing andencrypting of MIME bodies, and transference of credentials with S/MIMEas described in Section 23 of RFC 3261. If a UA holds one or more rootcertificates of certificate authorities in order to validatecertificates for TLS or IPSec, it should be capable of reusing these toverify S/MIME certificates, as appropriate. A UA may hold rootcertificates specifically for validating S/MIME certificates.

Note that is it anticipated that future security extensions may upgradethe normative strength associated with S/MIME as S/MIME implementationsappear and the problem space becomes better understood.

SIP supports the encryption of both message bodies and message headers.The encryption of message bodies makes it more difficult for aneavesdropper to listen in. Also, an uninvited third party, knowing allthe Session Description Protocol (SDP) information could guess thereal-time transport protocol synchronization source (RTP SSRC) numberand send unwanted media to either party, practicing so called “mediaspamming.” Encryption of headers can hide the parties involved in thesession. In addition to that, actual session stream can be encrypted asnegotiated by SIP.

Depending on the situation, SIP messages between the WCM and the walletapplication on the wireless device can carry any supported content typesin its payload (e.g. WML, HTML, XHTML, gif, text and others). SIPpayload content could include encryption keys, encryption algorithms,forms, user authentication information (e.g. usernames, passwords, PINs,and answers to secret questions), software extensions the issuer wantsto register with the wallet application, software updates, electroniccredentials, updates to existing credentials, graphics that are part ofthe credentials, and other such information.

Java applets can be transported as SIP payload, and Java applets runningin a mobile phone can use SIP based services in communications. A simpleuse case would be distributing the wallet application, checkingavailability for operator support (if downloaded elsewhere), setting upthe application, and communicating with credential issuers using SIP.The credentials in turn can be transported using SIP.

Wireless Credential Manager (WCM)

Various details of the WCM 110 of the present invention, in a preferredembodiment thereof, are now presented. The Wireless Credential Manager(WCM) 110 is a carrier-grade platform for real-time electroniccredential issuance, management, and authentication. It is ideal forfinancial institutions, government agencies, and other organizations whowish to securely deliver electronic credentials to a wireless devicewith an associated E.164 phone number, URI, or other type ofInternet-routable address.

Application Engine

The application engine provides access to service logic through a CGI,Servlet, or proprietary interface. The service logic is free to accessbusiness logic and databases using, for example, Corba, SOAP, JDBC, orSocket.

The application engine is the core of WCM 110. The application engine isresponsible for receiving files and commands from the issuer's usermanagement system, interpreting the information, and acting on itthrough a variety of functions it has in its library and under itscontrol. For example, the application engine can use the ENUM engine(integrated in the WCM 110) to query DNS servers in order to map a E.164phone number to network addresses. An integrated DNS resolver can beused for ENUM queries and also to resolve SIP URIs to network addresses.

The application engine can also function as a user agent client (UAC)and a user agent server (UAS) for SIP communication. The UAC initiatesrequests while the UAS generates responses. As such, the applicationengine will be capable of operating as both a UAC and a UAS during asession with end-user wallet applications. Further more, the applicationengine is capable of handling multiple simultaneous sessions withdifferent SIP devices.

The application engine is capable of maintaining state on calls that itinitiates or participates in. A minimum call state set includes thelocal and remote tags, Call-ID, local and remote CSeq header fields,along with the route set and any state information necessary for themedia. This information is used to store the dialog information and forreliability. The remote CSeq storage is necessary to distinguish betweena re-INVITE and a re-transmission. The application engine UA preferablysupports UDP, TCP, TLS, and SCTP transport. The application engine UAalso preferably supports SDP (IETF 2327) for media description. Othertypes of media description protocols can be used in the body andinterpreted by the application engine, but SDP support is required perRFC 3261.

The application engine also interfaces with a SIP proxy that isintegrated in WCM 110. The SIP proxy may run on the same physical serveror separate servers, for load balancing or other reasons. Details ofother key components of the WCM under the control of the applicationengine are outlined below.

ENUM Engine

The ENUM engine in WCM 110 is a standards compliant resolution tooldeveloped based on RFC 3761. ENUM (RFC 3761) is the Internet EngineeringTask Force (IETF) standard that defines a mechanism for using the DomainName Service (DNS) as a tool to “discover” services associated with atelephone number (E.164 number).

WCM 110 automatically processes NAPTR record(s) in DNS wire format intoapplication service, order, preference, and URI fields. WCM 110correctly parses the NAPTR service fields and dynamically interpretsPOSIX Extended Regular Expressions. Additionally, WCM 110 provides theDNS message processing and network transport mechanisms required totranslate a telephone number into a set of ENUM records. Support isprovided for the following feature set:

1. Standard ENUM query—returns all of the ENUM records associated with agiven telephone number. The WCM's Application Engine is capable offiltering the results based on application protocol and/or service type.

2. Server-side Extensions—returns subset of the ENUM records associatedwith a given telephone number based on optional query directives thatenable the ENUM service to filter results based on both applicationprotocol and/or service type.

3. POSIX Extended Regular Expressions—matches and substitutes any validPOSIX Extended Regular Expression within the NAPTR record regularexpression field.

4. Public/Private Dialing Plans—supports both public and private dialingplans by selectively querying alternate root ENUM domains.

5. Multiple Attempts—retries a query N times.

6. Recursion—provides DNS recursion from WCM 110, eliminating the needfor a recursive local DNS server when querying multi-tiered DNS systems.

7. Security—supports Secret Key Transaction Authentication (TSIG).

8. Thread Safe—supports a multi-threaded environment

9. UDP/TCP transport—supports both UDP and TCP connections to allow forefficient retrieval of large sets of DNS records.

10. Larger UDP payload—support for large UDP response payload beyond thedefault 512 bytes. [RFC 2671]

11. Network Latency Based Server Selection—determines the bestperforming ENUM/DNS server based on query response time.

12. Caching—caches records for a period of time specified by theTime-To-Live (TTL) field defined for the resource record.

Preferably, WCM 110 provides DNS resolution and update capabilities forthe following resource records: A, NS, SRV, NAPTR, SOA, PTR, MX, CNAME,TXT, and HINFO. The following pseudo resource records are alsosupported: TSIG, OPT, SOA.

RFC 3761 highly recommends the use of DNS security. The WCM ENUMinfrastructure supports DNSSEC to address a variety of security issuesincluding impersonation, data tampering and unauthorized access/farming.The use of TSIG enables transaction level authentication using sharedsecrets. TSIG is lightweight and may be used for authentication on DNSqueries. Support for TSIG functionality is built into WCM 110.

Use of the TSIG DNS resource record is specified in RFC 2845. TSIG wasdeveloped as a lightweight alternative to using public key encryptiontechnology for DNS authentication. The main function of using TSIG is toestablish a trust relationship between two entities using a sharedsecret key. The TSIG resource record is dynamically generated per ENUMtransaction and is contained in the additional data section of the DNSmessage. TSIG records are never cached. All of the DNSSEC functionalityrequired to implement TSIG with any ENUM system is implemented in WCM110. The process of utilizing TSIG in an ENUM transaction is through theuse of a SIP proxy.

Integrated into WCM 110 is a SIP proxy that interfaces directly with theapplication engine, which is responsible for setting up or terminatingsessions with end-user wallet applications. The SIP proxy sits in themiddle of a SIP message exchange, receiving messages and forwardingthem. There may be multiple proxies in a signaling path. The proxyserver is not really “in the call.” The WCM SIP proxy facilitates thetwo end-points locating and contacting each other. The SIP proxy can beconfigured to remain in the signaling path or drop out of the signalingpath as soon as communication between two end-points is established. TheSIP proxy is also able to use the DNS resolver within WCM 110.

Support for Call Processing Language is supported within WCM 110. CPL isa standard scripting language defined by the IETF that described how toprocess inbound and outbound requests. The CPL language isprotocol-neutral and has a language binding for SIP. It is designed tobe a simple and safe mechanism suitable for executing user-definedscripts. The SIP proxy is usually separated from CPL interpreter andapplication logic. Since CPL is a standard, any application can generateCPL and a compliant proxy should understand it

WCM 110 preferably provides an easy-to-use GUI to manage server clustersand servlet applications. It supports SNMPv2c for ease of integrationwith external Operations Support Systems (OSS). WCM 110 provides acomprehensive logging service that enables credential issuers to quicklycollect fault and performance data.

The WCM logging service also permits issuers to create, encode, andexport communication records (CDRs) with end-user wallet applicationsfor export into user management systems and visibility by issuercustomer care departments. WCM 110 supports flexible configuration ofCDR extensions, file transfer options, and file naming.

WCM 110 preferably supports the secure transfer of individual encryptionkeys (obtained from end-user wallet applications during communication)to other user management databases or LDAP servers within the issuerenvironment. These encryption keys can be called upon by WCM 110 forfuture communication with a particular end-user's wallet application.

WCM 110 supports authentication, authorization, and accounting of SIPsessions in accordance to RFC 3702. WCM Service Creation Environment(SCE) is comprised of a software developer kit (SDK) coupled with thestandards-based, JSR 116-compliant SIP Servlet API. The SIP Servlet APIis the interface between the applications and the SIP container, whichsupports the SIP server roles needed and interfaces with the SIP stack

When an incoming SIP message arrives in the SIP container, it usesso-called Servlet Mapping Rules to decide which application(s) need tobe invoked. These Servlet Mapping Rules are defined in XML and describecriteria to be met by the SIP message. The applications interact withthe SIP server functionality via the SIP Servlet API.

The WCM SDK provides a preloaded set of SIP application building blocks(ABB) that allow issuers/operators to configure WCM 110 to interact withthe wallet application for credential management including: i) issuance,cancellation, status change and update; (ii) real-time userauthentication during transaction authorization; and (iii) remote wallet

The WCM SDK also includes non-SIP application building block connectors(ABB-Cs) that dramatically reduce the effort and knowledge needed tobuild SIP-based applications within the WCM 110.

In addition to the security protocols supported above, the WCM 110preferably supports MD5 digest authentication to prevent passwords frombeing sent across the network in clear text.

WCM 110 supports a number of flexible APIs that allows for WCM 110 tocommunicate with different issuer systems in real-time or batch mode.The APIs support a number of standard command sets recognized by theapplication engine. Standard APIs and command sets included with the WCM110 are for:

Interface to credit card management systems

Interface to debit card management systems

Interface to ATM card management system

Interface to retailer loyalty card

Interface to retailer membership systems

Interface to corporate security access control systems

APIs and application logic can be customized using the WCM servicecreation environment (SCE) discussed earlier. API frameworks supportedwithin the WCM utilize: SOAP/XML, .NET and CORBA. WCM 110 also supportspeer-to-peer data integration interfaces to middleware designed forassured delivery, high-volume and secure data exchange. Such middlewareinterfaces supported include, for example, Sterling Commerce'sConnect:Direct. Such an interface to Connect:Direct could be used forreceiving the Personalization File from an issuer's card managementsystem and sending systems logs, CDRs, and other confidentialinformation to other issuer systems.

To ensure that a message sent to the system is from a valid source andhas not been tampered with, WCM 110 supports message authentication(using the ANSI X9.9 and X9.19 standards for authentication of financialtransactions) and Secure Sockets Layer (SSL) encryption

A discussion of the architecture of WCM 110 in a preferred embodimentnow follows. WCM 110 is designed with a customized, load-balanced,distributed architecture without single points of failure.Incoming/Outbound SIP-based service requests are load balanced acrossservice hosts by service directors. WCM 110 operates in clusteredconfigurations using off-the-shelf server platforms based on Intel x86and SUN SPARC architectures. It supports carrier grade Linux (CGL), SunSolaris, and Microsoft Windows 2000 Advanced Server Operating systems.WCM 110 can also be run on AlphaServer systems running Tru64 Unix andHimalaya High End series running NSK

Technically, SIP will function across both IPv4 and IPv6 networks. Assuch, WCM 110 is preferably compatible with IPv4 and IPv6 networks. WCM110 also supports the following transport protocols: UDP/TCP/TLS/SCTP.WCM 110 also supports multiple domain names. All aspects of WCM 110 arecompliant with IETF RFC 3261, 3GPP, and 3GPP2 standards. Embedded in WCM110 is a compliant SIP application stack that the different componentsof WCM 110 are built upon. Cryptographic functions supported include:

PIN, MAC and Data encryption keys

Multiple index for all cryptographic keys

Single, double or triple length of all encryption

Single or Triple DES encryption/decryption

Dynamic key exchange

Key thresholds and threshold limits

In a preferred embodiment of the present invention a SIP-capablefirewall is also included. Some issuers may choose to use the built infirewall capability, while others may have a stand-alone SIP-capablefirewall they are using. There are several possible approaches toSIP-capable firewalls. One of the difficulties is that, unlike for, say,HTTP, connections are originated both by hosts inside and outside thefirewall. A likely arrangement is that the SIP proxy sits “on” thefirewall and relays SIP requests between the Internet and the intranet.This proxy would also open up the necessary ports in the firewall to letdata to flow through, for example, using Socks V5.

As an alternative, if a firewall or network address translator (NAT)allows outgoing TCP connections, the inside client can open up a TCPconnection to an outside proxy. All outgoing and incoming calls wouldthen be handled by that TCP connection. (The client would still have touse SOCKS or a similar mechanism to convince the firewall to let packetsthrough.)

The following discussion provides information about the Mobile OperatorArchitecture according to a preferred embodiment of the presentinvention. The ENUM Provisioner is an application for mobile operators(or other entities) to update ENUM address information in any compatibleDNS server that supports dynamic DNS update. The ENUM Provisionerapplication can be interfaced with a mobile operator's user managementsystem or LDAP server to accept qualified updates to the ENUM database.

The ENUM Update interface supports the following functionality:

Add Records—add 1 or more resource records.

Delete Records—delete 1 or more resource records.

Multiple Operations—perform multiple add and/or delete operations in asingle request.

Security—Optional TSIG authentication.

Thread Safe—can be used in a multi-threaded environment.

The ENUM Provisioner interface uses Dynamic DNS (DDNS) protocol[RFC2163] to request updates to an ENUM/DNS service. Update requeststypically use TCP connections to communicate with the ENUM service.

The ENUM Provisioner can be used to add NAPTR records to the ENUMdatabase for user's that have enrolled in the mobile wallet service andactivated their wallet on the phone. The Provisioner can also be used toadd NAPTR records in the ENUM database corresponding to other servicesassociated with E.164 phone number (e.g. voice, instant messenger,etc.). The mobile operator's existing user management system can enforcerules for validating users, activating services, billing, and otherfunctions. Other components of a Mobile Operator's SIP Infrastructuremay also include

Proxy Servers

Registration Server

Location Server

Presence Server

Wallet Software Download or Over-the-Air Provisioning Server (Allowswireless device to download the wallet application OTA

LDAP server/user management system

Wallet Application

The following discussion provides additional details concerning thewallet application of the present invention in a preferred embodimentthereof. The wallet application is a platform capable of securelyholding a myriad of different electronic credentials and making themavailable in a controlled way through specific functions. When loaded ona wireless device, an icon for the wallet application is designed toappear on the main navigation screen. The icon can be used to launch theapplication.

The open-architecture of the wallet platform allows credential issuersto deploy their own commerce-specific applications called “extensions”.Extensions literally “extend” the capability of the wallet platform byenabling a new set of features defined by the credential issuer.Different credentials serve many unique purposes and are not all used inthe same way.

For example, when a subway contactless stored value card is waved infront of a reader at the turnstile, the electronic balance isautomatically debited from the onboard chip. The rules that govern thefunctioning of that stored value program and the card's interaction withan external RF reader, are all programmed into the onboard chip.

In the case of a magnetic-stripe credit card, the card is swiped in aPOS terminal and magnetically encoded information on tracks 1 and 2 areread and captured by the reader. The data in turn is used to authorizethe transaction with the card issuer.

A final example is a grocery store loyalty card with a bar coded accountnumber. At the POS, a cashier scans the bar code and the decoded accountnumber is validated against a loyalty database and then used to applydiscounts against the patron's purchase.

These are just a few examples of the types of credentials that can beissued to and stored within the wallet application. Implementingelectronic versions of these credentials in the wallet applicationcreates different operating and processing requirements for eachcredential. Consider the requirements associated with implementing thesubway stored value credential through the wallet platform. The logicrequired to operate the subway stored value credential, the uniquemessage format for communication between the wireless device and a RFreader at the turnstile, unique display messages, an over-the-air reloadtool, and other features associated with the stored value credentialthat a user might see on the wireless device—all need to be programmedinto the wallet application. These types of requirements are embodied inmini-programs that operate within the wallet application called“extensions” since they “extend” the capability of the walletapplication in order to handle new features and capabilities that arespecific to an issuer's credential. These extensions allow credentialsto be used in a controlled way through specific issuer-definedfunctions.

A software development kit (SDK) and API can be made available tocredential issuers and other organizations that want to developextensions for the wallet platform. Extensions can utilize all thefeatures that the wallet platform makes available to it, including suchfeatures as access to the device's secure storage, standard displayparameters, standard messaging, data format conversions, SIPcommunication capability, access to device and operating systemfunctions, and other attributes.

A wireless device loaded with the wallet application may come with somepre-loaded extensions. Extensions may reside on the device memory, in anembedded smart card, in a removable storage media, or on a remoteserver, securely accessible through the wallet application protocols. Anextension may communicate with the user, may exchange information withremote servers or it may use other elements of the device hardware orsoftware.

Credit card associations/networks may develop a software extension forthe wallet application that governs the interaction between the RFIDchip embedded in a wireless device and a reader terminal. A modifiedversion of the “MasterCard Proximity Chip Payment—Online Profile” andthe “Visa Specification for Financial Messaging for Contactless Payment”could be embodied in a software extension for the wallet application.The use of such an extension for facilitating credit card transactionsusing the wallet application is an important part of the presentinvention. The provisioning of such an extension to a wireless deviceusing a valid E.164 number of URI is also possible. The same extensionscould be used by multiple issuing banks.

The actual account information or personal information that istransmitted by the issuer to the wallet application is referred to asthe “credential”. The actual credential record that is transmitted tothe wallet application by the issuer may contain some of the followinginformation:

Name of credential (e.g. United Airlines Mileage Plus Card)

Name and logo of credential issuer

Name(s) and logo(s) of association or network(s) (e.g. Visa, MasterCard)

Account specific information

Account number

Expiration date of credential

Special security information related to credential (e.g. CVV/CVC,CVV2/CVC2, etc.)

“Reader Key” for credential (discussed later in the document)

Identifier for extension to which the credential is associated (When acredential is selected by a user, this identifier is used to launch anextension in the wallet application)

Primary and secondary credential categories

Wallet Shell

The wallet shell is the core of the wallet platform. The walletapplication handles processing of incoming credentials and extensions,the execution of extensions within the wallet framework, controllingaccess to secure storage, enabling communication with an embedded RFinterface or smart card, and facilitating the use of operating systemand hardware features such as display and sound.

All user settings are also controlled by the wallet shell. Features thatallow users to delete extensions/credentials, change/reset PINs, andchange certain preferences are controlled through the shell.

The wallet shell also provides extensions with a standard menu-drivenuser interface from which to operate. The wallet shell also enablessecure communication with external servers via SIP and TCP/IP. Thewallet shell also has an embedded ENUM resolver for being able to do DNSqueries on valid E.164 phone numbers. This embedded ENUM client isuseful for facilitating secure person-to-person, person-to-company, orcompany-to-company transfers of digital money over-the-air using awallet extension designed for this purpose. Such an extension could usethe ENUM resolver built into the wallet shell to locate the URI for arecipient's electronic wallet to where funds are being transferred. Theclient ENUM resolver will be designed to submit DNS queries on themobile operator's network; the IP addresses of the DNS server(s) couldbe pre-programmed in the wallet shell or could be discovereddynamically. A mechanism by which a user could transfer funds to anotheruser by using a valid E.164 number, and establishing a peer-to-peer SIPconnection is available through the present invention.

Wallet Application

Mobile transactions can be performed in three environments: local,remote, and personal. Each environment has its own mobile commerceservices and characteristics that may require specific technologies. Awallet application on a wireless device that enables transactions in allthree environments will provide the greatest utility to users.Electronic credentials issued to a user and stored in the walletapplication can be used in all three environments.

Local Environment

In a local—or proximity—environment, the consumer is in the vicinity ofa reader device that is connected to a point-of-sale (POS) terminal orsome other type of computer system. Most day-to-day proximitytransactions today use a card or token with information encoded in avariety of media types including magnetic stripe, bar code, chip, andembossed or printed data. A mobile device with a wallet application canserve as a replacement for single-purpose cards and tokens. During aproximity transaction, the wireless device can transmit payment,identification, or other confidential information to a reader using theshort-range transmission capability of the wireless device (e.g. RF).For example, a wireless device loaded with a wallet application, thatalso has an integrated RFID chip can simply be waved slowly in closeproximity to a reader device to facilitate a transaction. Similarly, awireless device that uses infra-red to transact with a reader requiresthat the user point the infra-red beam to a reader device.

Personal Environment

In a personal environment, mobile transactions are conducted on the userinterface of another device and augmented by security, connectivity,information, and other functionality provided by the user's wirelessdevice. For example, during a transaction—a point-of-sale device mayestablish secure connectivity with the user's wireless device and pollit for a list of user-defined payment methods that the user can selectfrom using the user-interface of the POS system. The implication is thatthe user's wireless device can act as a repository of information thatcan be securely accessed by another device during a transaction.

The wallet application will support peer-to-peer connectivity to adevice in close proximity. Connectivity between the wireless device andthe reader/POS terminal could be made via 802.11a/b/g, Bluetooth, orother RF protocols. Connectivity could initially be established byexchanging encryption keys via RFID that allow the devices to establishconnectivity via an alternate channel securely so no other device canlisten in to the communication. Keys could also initially be exchangedvia infra-red technology.

One advantage of establishing peer-to-peer connectivity with a POSterminal is that it allows for a bi-directional exchange of data where auser may be prompted on his wireless device for various types ofpreferences, questions, or other data input in sequence. Transactionswhere there is a stream of data that goes in both directions can benefitfrom this type of peer-to-peer session using any number of protocols.

Another advantage of establishing peer-to-peer connectivity with a POSterminal for example is that the user can use the terminal's display andinput mechanism instead of on the wireless device to interact with hiselectronic wallet. The larger display and input mechanism of theexternal device may make it easier for the user to make selections. Inpersonal environment transactions, credential data is transmitted fromthe wireless device to a merchant/organization using the short-rangecommunication protocols mentioned.

The personal environment capability of the wallet application could alsobe used to issue credentials to the device while the user is present inan issuer's site. For example, if a user is present in a bank branch andis requesting a digital credential for his mobile wallet, the credentialcould be issued in the manner described above. For example, if a userwants a digital debit card, the user may be prompted by a bank employeeto bring his wireless device in proximity of an RFID reader, which willsend a command to the wallet application signifying that it is going toreceive a new credential via Bluetooth. The bank system and the wirelessdevice may exchange encryption keys via RF in order to establish asecure Bluetooth connection with the bank network (the process forestablishing Bluetooth connectivity is similar to what is outlined laterin the Wallet Transfer section).

Remote Environment

In a remote—or online—environment, transactions are conducted with aremote server over a wireless network. For example, a remote transactionusing a wireless device can be conducted over the Internet with abrowser on the wireless device. In such transactions, the wirelessdevice's user interface (UI) is of paramount importance. The UI mustrelay all relevant information to maintain the user's trust and ensureusability of the services. Remote transactions range from onlinepurchases and banking to more impulsive activities like downloadingdigital content.

Wallet Main Menu

The main menu of the wallet application contains 6 primary modules in apreferred embodiment:

Credential Selector

Profile Selector

Profile Creator

Digital Receipts

Log Viewer

Wallet Settings

Application Background

A wireless device running a wallet application as described herein willserve as a replacement for single-purpose cards and tokens thattypically fill people's wallets and purses. The wallet application isdesigned to facilitate transactions in a proximity, personal, and remoteenvironment using the device's short-range or long-range transmissioncapability.

The wallet application is specifically designed to store several typesof electronic credentials. Electronic credentials are organized in thewallet application using a hierarchical categorization scheme that makesfinding credentials visually easy for the end-user. The top level of thehierarchy includes primary categories. The primary categories are broaddescriptors of the different types of information that the walletapplication can store. Under the primary categories are sub-categories,which provide additional specificity for the types of credentials thatcan be found there. Sub-categories may not always be present.Credentials can be mapped directly under a primary category or to asub-category. Sub-categories are particularly useful when a large numberof credentials are present under a primary category and need to beorganized based on some further classification.

The wallet application has several primary credential categories thatare pre-programmed in the wallet application. These pre-programmedprimary headings are listed below with examples of the types ofcredentials that one might find in each:

Payment Methods—Credit, debit/ATM, stored value, electronic check, andRFID payment methods may be registered with the wallet application

Loyalty Cards—Grocery store discount cards, airline frequent flierprograms, hotel loyalty programs, and other loyalty programs areincluded in this category

Membership Cards—Personal memberships to video rental stores, libraries,and other organizations

Access Cards—Electronic keys for offices, apartments, parking garages,cars, and other secure facilities

E-Tickets & Passes—Electronic tickets for sporting events, concerts,shows, transportation, and other purposes may be issued to the walletapplication.

Coupons & Certificates—Electronic coupons and certificates that can beused at specific locations, that typically have a fixed value, andexpiration date for usage

Identification Cards—Driver's license, government identification, schoolor university ID, and other pieces of identification

Personal Information—Name, billing address, shipping address, home phonenumber, business phone number, fax number, social security number, anddate of birth. Electronic business cards could also be stored.

The presence of all the above primary categories to classify differentcredentials within the wallet application is possible according to theteachings of the present invention. The use of sub-categories under theprimary categories is also possible as is the presence of credentialsdirectly under a primary category or under a secondary category.

Sample sub-categories are represented in the example credential treebelow. The credential tree may be used to visually present informationin the wallet application.

Payment Methods Credit

Sample Bank MasterCard XXX4321

Capitane Visa XXX1234

Home Depot Card XXX9865

Gap Card XXX5432

Exxon Mobil Card XXX4564

Debit/ATM

Sample Bank XXX5432

Stored Value

Starbucks S-Value XXX9876

Electronic Check

Sample Bank Checking XXX7654

RF Tokens

Speedpass XXX3456

An issuer of credentials may specify the primary category and secondarycategory (if applicable) that a particular credential should be linkedto in the wallet application's credential tree; this information can bespecified in the credential issuance record that is sent by the issuerto the wallet application on the wireless device. Standardized codes orcategory names may be used in the credential record that allows thewallet application to link newly received credentials to pre-existingcategories contained in the credential tree.

If a credential is received by the wallet application containing aprimary and/or secondary category that does not yet exist in thecredential tree, the wallet application will add the primary and/orsecondary category automatically before linking the credential to it.

Primary categories in the credential tree can be automatically organizedin alphabetic order or based on frequency of usage, with the most usedprimary categories at the top of the list for easy access. Theseorganization schemes may be user defined options in the walletapplication, or may be set a certain way by the application itself. Thesame organization schemes would also apply to secondary categories andthe credentials themselves.

All primary and secondary categories should appear in the credentialtree, regardless of whether there are credentials contained within them.Under this embodiment, primary and secondary categories that havecredentials contained within them may be visually distinguished in thedevice display using any number of methods such as bold text, the use oficons, color coding, or some other visual means. Primary and secondarycategories that do not have credentials may in turn be represented usingdifferent distinguishing features such as muted text (lightened), theuse of icons, separate color coding, or other visual means.

Under another embodiment of the wallet application, the user may beallowed to create their own credential tree by naming all primary andsecondary categories and linking newly received credentials to thecategories. Users may have a repository of recommended category nameswithin the wallet application that they can opt to use. Further, underthis embodiment, users will also have the ability to rename categories,delete categories, and move credentials from one category to another.

The credential tree is the primary basis by which credential informationis organized in the wallet application. The credential tree representsthe entire embodiment of all primary categories, secondary categories,and credentials registered in the wallet application. Certain screens inthe wallet application may display the entire credential tree, or onlycertain components of it as necessary. The credential tree provides avisual hierarchy which is useful for (a) allowing users to make quickselections of specific credentials for use in a transaction (via the“Credential Selector” feature described later), and (b) for managingtheir credentials and wallet settings in the application.

The following discussion provides further information regarding theinteraction between a wireless device and a reader. If the walletapplication UI, and the wireless device itself are overly complex anddifficult to use, people will not want to give up their traditionalwallet or purse filled with a variety of single-purpose cards andtokens. Completing a time-sensitive transaction such as a grocery storePOS purchase or a ticket purchase at the subway turnstile requires awallet application and device that minimizes the key strokes a user hasto make, but at the same time provides for a high degree of user controland security over confidential account information.

Several features of this invention serve to minimize the key strokes auser has to make in searching for, selecting, and transmitting acredential to a reader. One such feature of this invention is the use ofa credential-specific “reader key”. The key is sent with an electroniccredential record to a wireless device during the issuance process. Thesame reader key is programmed in all reader devices employed by anorganization. In the case of an RFID reader, the key is transmitted fromthe reader to the wireless device's RFID chip during a proximitytransaction. The receipt of the key by the RFID chip in the wirelessdevice may initiate the automatic launch of the wallet applicationresident on the device, and the transfer of the key to the application.The key is subsequently received by the wallet application and is usedas a search string by the application to locate a specific credentialfor transmission back to the reader via the device's RF capability.

The “reader key” is especially useful to organizations that are bothissuers of electronic credentials and also acceptors of thosecredentials. An example would be a grocery chain that has a WCM forissuing electronic loyalty cards to mobile devices, and is also setup toaccept those credentials via RFID readers installed at POS terminals inits stores. The grocery chain would program the reader key into all itsRF readers so that the key is transmitted during a proximity transactionto the RFID chip embedded in a wireless device. During the issuanceprocess of a digital loyalty card, the grocery chain sends the readerkey along with the loyalty credential to an end-user's wireless device.The wallet application stores the “reader key” with the electroniccredential to which it is linked. When transmitted to the wirelessdevice from the reader, the key is used by the wallet application as asearch string for locating the linked credential. If a matching key isfound within the wallet application, the corresponding loyaltyinformation will be transmitted to the reader from the wireless devicevia RF.

Employing a reader key in the manner described allows a reader device toautomatically capture specific credential information from a wirelessdevice without the end-user having to scroll through different screenswithin the wallet application and pressing multiple buttons on hisdevice. The sequence of events outlined above should occur in less thana second, in order to minimize the amount of time a user has to hold hiswireless device in proximity to the RF reader.

The key that is injected into the reader may be encrypted prior toinjection. As such, an encrypted key could be transmitted from thereader to the wireless device, and decrypted by the wallet applicationon the wireless device using a decryption key that was previously sentby the credential issuer during issuance or through some other process.The reader key can be any length, be in any format (e.g. plain-text,ASCII, binary, etc.), and employ any type of encryption algorithm. Thekey may also be included as part of a “handshake” message and/or“challenge” message (associated with challenge/response technology thatis frequently used with RFID) transmitted from the reader to thewireless device. They key could also be transmitted before orimmediately after a “handshake” and/or “challenge” message.

It should be noted, that readers will be capable of storing andtransmitting multiple “reader keys” that can be used to poll wirelessdevices for different credentials during a single transaction. Thewallet application in turn will be capable of receiving and processingmultiple incoming reader keys. Keeping with the grocery chain exampleabove, communication between the POS reader and the wireless devicemight involve sending two separate keys; one key that requests a loyaltycard, and a second key that requests valid coupons or certificatesstored on the wireless device. As discussed, multiple keys may be usedto poll for separate credentials in a wallet application.

The loyalty credential and the coupons can be retrieved automatically(without requiring the user to pre-select these credentials fortransmission) since the key for each of these items would be mapped tothe credentials in the wallet application. It should be noted that ifthe wallet application receives two keys from the reader, but only oneof the corresponding credentials exists in the wallet, only thatcredential would be transmitted to the reader.

The reader may transmit multiple keys as part of the same message to thewireless device, or each key could be sent in separate messagessequentially. The same applies for transmission of multiple credentialsfrom the wireless device to the reader. While a large number of keyscould in theory be transmitted from the reader to the wireless device, avery large number of keys will likely increase the amount of time ittakes to make the initial transmission, for the wallet application tosearch for multiple credentials, and for the credentials to betransmitted to the reader. The use of a large number of keys may simplyrequire the user to hold the wireless device in front of the reader fora longer period of time while the processing that was described abovetakes place.

An organization that is issuing multiple types of credentials, may alsochoose to use the same “reader key” for each credential type it issues.During the issuance process, an issuer can simply send the same readerkey with different credentials it is issuing via the WCM. The walletapplication in turn will map the same key to multiple credential recordsstored within. If that particular key is received by a wireless deviceduring a transaction, the wallet application will identify all thecredentials linked to it, and will proceed to send them all to thereader as separate consecutive records or one message containing allrecords.

“Reader keys” also need not be organization-specific. The same key couldbe embedded in readers used by multiple organizations to poll for thespecific credentials. In such cases, the “reader key” may be securelyshared amongst organizations to facilitate the injection of the key intoreader devices. During a transaction, a credential being transmittedfrom the wireless device to the reader could be sent along with the samekey that was initially transmitted by the reader to the device; thiscould be done as a way for the reader and related computer systems (e.g.POS equipment) to identify the type of credential (e.g. loyalty cardversus coupons).

The credentials transmitted from the wireless device to the reader maybe encrypted using the issuer's encryption key (that may have beenprovided during the issuance process or through other means). Theencrypted credentials could in turn be decrypted by the reader itself,within a central host system, or by other systems employed by theacceptor of the credentials.

Certain payment methods such as subway stored value cards may beorganization specific and be the only payment method accepted; as such,a subway operator may employ reader keys to facilitate a rapid paymentsystem with wireless devices.

In a preferred embodiment, a successful transmission of credentials fromthe wireless device to a reader would result in a tone being sounded bythe device. A separate, but distinguishable tone may also be used tosignal an unsuccessful transmission of credential data from the wirelessdevice to the reader that may require the user to again place the devicein front of the reader for a re-transmission attempt of the samecredential. The wallet application will use the wireless device'sintegrated hardware and software capability to generate such tones.

A successful transmission of credentials from the wireless device to areader may also result in a visual acknowledgement on the devicedisplay. The wallet application message will confirm the successfultransfer of specific credentials to a reader device; the actualcredentials that were transferred will be listed in the message toinform the user of what confidential information was transmitted. Theuser can close the acknowledgement message by pressing a walletapplication designated button such as “OK”, or doing nothing while themessage times-out and is automatically closed. A set time-out periodwill be programmed into the application. If the message times-out, thedevice will return to its normal state.

Data in the wallet application is encrypted and protected with a specialwallet PIN code which is set by the wireless device owner during thesetup of the application. The PIN is used to authenticate the user tothe application. PIN-entry is required to access stored credentials andchange any application settings or preferences. PINs can be any length,and be comprised of any combination of upper or lower case letters,numbers, and special characters as provided for by the wireless deviceitself. While this document references the use of PIN codes throughout,wireless device's with embedded biometric technologies could use afingerprint in lieu of a PIN code to authenticate a user to the walletapplication. The default security setting in the wallet application isthat PIN-entry is required before the wallet application can be “opened”and any credentials transmitted to an external device.

A user can at their own discretion, choose to designate certaincredentials within the wallet application to be used without requiringentry of the wallet application PIN. Registered credentials that can bedesignated by the user as not requiring entry of a wallet PIN are thosethat have a “reader key” associated with them. Credentials with a“reader key” associated with them will be flagged as such in the walletapplication to help a user identify them.

A user may be willing to assume a slight risk by designating certaincredentials for PIN-less use since the benefits of speed and convenienceare important to them. Rapid payment at the subway turnstile is anexample of where the benefits of speed and convenience may outweigh therisks associated with designating a stored value credential on awireless device for PIN-less use, leaving open the possibility that afraudster could steal the device and use the stored value purse. Eachindividual will have their own risk tolerance and as such will want theflexibility to designate specific credentials in their wallet asrequiring advance PIN-entry and others to function without the priorinput of the wallet PIN.

Credentials that are marked by users as not requiring PIN-entry will beautomatically selected within the wallet application based on the“reader key” that is received, and transmitted to the reader during aproximity transaction (the process is described above). Successfultransmission of credentials to a reader in a PIN-less mode are confirmedby the device sounding a tone and displaying a message on its display aspreviously described.

The PIN-less option for certain credentials that have a “reader key”associated with them allows users to complete time-sensitivetransactions by simply passing their wireless device in front of areader without any further key entry. As such, a simple “wave” of thedevice in front of a reader can result in a completed transaction inabout a second or less.

The use of “reader keys” by issuers and acceptors is optional. In theevent that reader keys are not employed, the user of the wireless devicewill be required to pre-select all the credentials he wants to transmitto a reader prior to placing his device in proximity of the readerduring a transaction. A “Credential Selector” in the wallet applicationallows for one credential or multiple credentials to be selected fromthe credential tree (described earlier) for transmission to a readerdevice. Users can scroll through the credential tree and selectcredentials by using the visual navigation system of the walletapplication and designated buttons on the wireless device for makingselections. The credential tree as it appears in the “CredentialSelector” screen may provide visual information about the credentials toaid a user in the selection of specific credentials. Individualcredential records may display information such as:

Name of credential (e.g. United Airline Mileage Plus Card)

Name and/or logo of credential issuer

Name(s) and/or logo(s) of association or network(s) (e.g. in the case ofbank cards)

Account number (e.g. could be full account number, partially maskedaccount number, or fully masked account number)

Indicator showing if the credential has a “reader key” associated withit

Indicator showing if the credential has been flagged for use without thewallet PIN

The credential information represented in the “Credential Selector”screen is information that is received from each issuer during theissuance process. A standard record layout for credentials issued viathe WCM will allow issuers to customize what information is reflected inthe credential tree, and in turn how it is represented in the“credential selector”. Once the user completes making his selection(s)in the “Credential Selector”, the wallet application is ready totransmit the credential(s) via its RFID interface. When the wirelessdevice is placed in proximity to the reader, the selected credential(s)are automatically transmitted by the RFID chip in the wireless device tothe reader.

After confirming a successful transmission involving multiplecredentials selected via the Credential Selector tool, the walletapplication will ask the user (via a display message) if he wants tocreate a profile with links to the credentials that were recently usedfor future use. Creating a profile with the credentials that were usedwill save the user time during future transactions with the sameorganization; in the future, the user only has to select the savedprofile (in the “Profile Selector”) instead of selecting multiplecredentials manually prior to a transaction. Profile names can becustomized by the user to help with identification during futuretransactions. The use of profiles is discussed further in the nextsection. Under one embodiment, only primary and secondary credentialcategories that contain credentials will appear in the credential treethat appears in the Credential Selector.

The wallet application also has a feature whereby a user can create andstore different profiles in advance, instead of after a transaction (asdescribed above). The Profile Creator allows a user to link multiplecredentials (stored in the wallet application) to a single profile foruse at specific organizations that may be frequented. This way a useronly needs to select one profile prior to initiating a transaction, andnot multiple credentials via the “Credential Selector” tool describedearlier. Once a user has selected a profile, the user can place thewireless device in proximity to a reader, and the RF chip in the devicewill automatically transmit all credentials linked to that profile.

A profile list within the wallet application will automatically beorganized in alphabetic order or based on frequency of usage, with themost used profile at the top of the list for easy access. Theseorganization schemes may be user defined options in the walletapplication, or may be set a certain way by the application itself. Asexample, an individual profile for a grocery chain may contain links toa payment method such as a Visa card, a loyalty card, and electroniccoupons. The number of credentials that can be linked to a profile isnot limited in any way (other than by storage and other hardwareconstraints imposed by the device). The wallet application may enforcecertain rules for profiles, such as only allowing one payment method tobe linked per profile; other rules could include, only allowing oneretailer's coupons/certificates to be linked to a single profile, or notallowing any other primary credential type to be linked to a profilethat contains an access card. These are only examples of possible rulesthat may be enforced by the wallet application.

Because of the sensitive nature of information stored in the walletapplication, user's want to ensure that they have complete control overthe transmission of information to an external reader such as at aretail point-of-sale. This is especially important for wireless devicesthat have an embedded RFID chip for short-range transmission. While RFIDcards automatically exchange information with a reader when held inclose proximity, users require a greater sense of control when using anRFID-enabled wireless device that contains multiple pieces ofconfidential information.

One embodiment of this invention involves the incorporation of a singlebutton embedded on the wireless device that can be used to activate thewallet application and to control the transmission of information to anexternal device via RFID (or some other short-range communicationmechanism). A credential with a “reader key” and the PIN-option turnedoff could be read from a wireless device in someone's pocket by afraudster carrying a reader that comes in close proximity to the device.As such, the existence of a button in an RFID-enabled wireless devicethat controls activation of the wallet application and transmission ofcredentials via RF could eliminate a similar fraud risk. Under onedesign, when the “wallet button” is pressed and released, the walletapplication launches the wallet application and enables communicationvia the RFID interface in the device; RF communication might be enabledfor a period of 30 seconds during which time the device should be placedin proximity of the reader to allow for transmission of a credentialthat has a “reader key” and is approved for PIN-less transactions. Inthe event that the device is not placed in proximity of the readerduring the 30 seconds, the application will disable RF communication andthe application may shutdown or go into its normal dormant state. (Theactual time that the RF communication is enabled by pressing the “walletbutton” may be shorter or longer than 30 seconds.)

The “wallet button” may have two functions. In addition to being pressed& released prior to a quick PIN-less transaction as described, thebutton could also be used as a short-cut for the user to launch thewallet application without using the wireless device's operating systemfunctions used to launch resident applications. To summarize, pressingthe “wallet button” and releasing it could enable RF communication for30 seconds, and also launch the application so the user can interactwith it if needed. As such the application is ready to communicate witha reader, and simultaneously prompts the user for his Wallet PIN. If aPIN-less transaction takes place during the 30 second window, the devicealerts the user as described earlier through sound/vibration andmessaging. Separately, if the user wants to open the wallet applicationto select credentials or make changes to settings, the user can simplyenter his wallet PIN when prompted.

Under this embodiment, the wallet button may also need to bepressed/released in order to effectuate a transaction that was initiatedthrough the Credential Selector or Profile Selector options previouslydescribed. In these cases, the appropriate credential or profile isselected, but the user is prompted to press and release the “walletbutton” in order to enable RF communication on the device.

In the discussion herein, the “wallet button” is pressed and released inorder to open a 30 second window whereby RF communication is enabled. Asan alternative, RF communication may only be enabled during the periodwhile the button is pressed down; as such, the user would be required tohold the button down while bringing the device in proximity to thereader in order to effectuate the transfer of his credential from thedevice to the reader via RF.

FIGS. 6( a) and 6(b) are graphical representations showing examples ofwhere a “wallet button” might be situated and how it might appear on thedevice. FIG. 6( a) shows the “wallet button” on the front side of thedevice, while FIG. 6( b) shows the “wallet button” on the side of thewireless device.

In another embodiment of this invention as illustrated in FIGS. 7( a)and 7(b), three “hot buttons” will appear on the wireless device. Thebuttons are labeled as follows:

Credit

Debit/ATM

QuickWave

According to this embodiment, a user could use the “Wallet Settings”functionality in the wallet application to link his favorite/preferredcredit card to button 1, and his favorite/preferred debit/ATM card tobutton 2. Button 3, labeled above as “QuickWave”, allows a user totransmit any PIN-less designated credential that has a “reader key”associated with it to a reader during a transaction.

Pressing buttons 1 or 2 could in addition to transmitting a paymentmethod, also transfer a PIN-less credential that has a “reader key”associated with it—provided that the reader sent the key in its initialcommunication with the wireless device.

The use of the three “hot buttons” above is intended as a way for a userto quickly transfer certain frequently used credentials to a readerduring a transaction. Graphical representations of how the three “hotbuttons” may be situated on the wireless device are shown in FIGS. 7( a)and 7(b).

Pressing buttons 1 or 2, may prompt the user to input a PIN before RFcommunication can be enabled. As such, a user may be required to input aPIN and click “OK” to enable RF communication for a 30 second window.Alternatively, the user may be required to input his PIN, click “OK” toinitiate PIN verification, and upon positive confirmation be prompted tohold down either button 1 or 2 while placing the device in closeproximity to a reader. The press/release or hold down scenarios wouldalso apply to button 3.

The wallet application-specific buttons as described above can be anysize, shape, or color on the front of the mobile device, on the back ofthe device, or on any side of the device. (The front of the device istypically the side with the display and keypad.) The button or buttonsmay also have iconic or text representations either on them or next tothem in order to signal their function. In cases where there aremultiple buttons associated with the wallet application, the buttons mayappear on the device close together or be in different parts of thedevice.

A discussion of issuer PINs and related security techniques according tovarious preferred embodiments of the present invention now follows.Certain credential issuers such as financial institutions may requirethat users validate their identity during a transaction by providing aPIN that was established with or set by the financial institution.

Presently, with various bank card transactions, PINs are verified eitheronline with a bank host computer system, or verified offline againstsecurity data onboard the card as in EMV “chip & PIN” transactions. Thepresent invention supports both of these PIN-verification schemes.

In the case of offline PINs, an issuer may issue a credential to awireless device and send a PIN code for that credential to the user viaan alternative channel such as e-mail or regular mail in order to ensurenon-repudiation. The PIN may serve as a decryption key for thecredential itself and may also be required for every transaction withthat credential. Since the credential is designated as using an offlinePIN, the wallet application will prompt the user for an issuer PIN eachtime the credential is selected for use. The entered PIN would in turnbe verified against security information that was transmitted during thecredential issuance process.

For credentials where an issuer PIN needs to be prompted for on thewireless device for each transaction, the wallet application will onlyprompt for the issuer PIN when that credential is linked to a “hotbutton” (as described earlier). As such, the “hot button” functionalitycan alleviate the need to enter both a “wallet PIN” and an “issuer PIN”,as the issuer PIN is sufficient to validate the user's identity. Afinancial institution may have specified via settings in the credentialissuance record that a temporary PIN assigned by the financialinstitution be changed to a user designated PIN when it is firstreceived. PIN changes for credentials that have issuer PINs will behandled securely through the wallet application.

Other financial institutions may send a PIN to the user via analternative channel in order to allow the user to decrypt and “activate”the credential, but may not require the PIN for use with everytransaction; these financial institutions may specify in the credentialissuance settings that the wallet PIN must always be prompted for.

Other credential issuers may issue a credential to a wireless device,require the wallet PIN with every transaction, but also prompt the userfor an issuer PIN (or PIN set with the issuer) on the POS terminalduring each transaction. The POS terminal may know to prompt for a PINbased on a card BIN number for example.

As such, some issuers may not require the wallet PIN to be prompted for,since the user will be prompted to enter an issuer PIN on the POSterminal that will be authorized on-line. In cases where suchcredentials are linked to a “hot button”, the user will not be promptedfor a PIN on the device, but will be prompted for an issuer PIN on thePOS terminal.

Another type of PIN verification scheme for credentials stored in thewallet application is unique to the system of the present invention.This on-line verification technique utilizes the over-the-air (OTA) PINhandling and processing capability of the wallet application and the WCM(at the issuer location). The OTA PIN verification scheme is useful forcredentials that are authorized online, and require a PIN in order tovalidate the user's identity. A discussion of this unique aspect of thepresent invention now follows in connection with FIG. 8. The uniqueaspect of this invention is that the credential information that istransmitted from the wireless device to an RF reader 820 reaches theissuer for an online authorization via one network path (comprised ofone or more networks), while the PIN request and response traverse acompletely different network path (comprised of one or more networks).The separation of credential data from the actual PIN data over separatenetworks provides a more secure way to authorize transactions.

As can be seen in FIG. 8, a first transmission path of an electroniccredit card authorization request 870 includes, for example, a merchantstore controller and merchant host system, an acquirer/processornetwork, a private network such as VisaNet, and an issuer gateway. Usingthese components, point of sale terminal 860, via RF reader 820 can beused to capture and transmit an electronic credential from a wirelessdevice for online authorization. The second transmission path as shownin FIG. 8 is via WCM 810 using the Internet and wireless link 880 andissuer DNS server 890 and is used to deliver a PIN request to wirelessdevice 800 and to receive a user-input response from wireless device800.

An issuer that has deployed WCM 810 for issuing credentials to wirelessdevices can also use it for implementing over-the-air PIN verification.WCM 810 can be used to handle over-the-air PIN verification forelectronic credentials issued using WCM 810 and also physical card/tokenbased credentials such as magnetic-stripe cards that require enhancedPIN protection using this method. Either way, the issuer must generallymake some modifications to its existing card management system.Specifically, accounts in the card management system 830 that have OTAPIN verification turned on, are flagged as such. The issuer's cardmanagement system 830 is preferably modified to allow incomingauthorization requests associated with a flagged account to undergoadditional processing after the underlying account status and otherinformation (e.g. credit limits, velocity rules, etc.) have beenchecked. These checks are performed in connection with various processes850 running in connection with the issuer cardholder system.

Authorization requests associated with accounts that are in good statusand are qualified for an “approval” based on issuer defined criteria,will be held until a PIN request is sent to wireless device 800 and theentered PIN is validated by the issuer's host.

After the issuer's card management system 830 has validated that theaccount is in good status and is qualified for “approval”, a PIN requestis generated by the system and sent to WCM 810 via a real-time interfacealong with information relating to the transaction and certain accountinformation. (If the account is not in good status or does not qualifyfor an “approval”, a denial message would be sent through the network(s)to the origination point.) The PIN request message sent to WCM 810should include fields such as the name of the organization thatoriginated the authorization request, location ID from where the requestoriginated (e.g. a store address), date/time of authorization request,transaction amount being authorized (or purpose of transaction if anon-financial transaction), transaction ID, last four digits of accountnumber, credential type (e.g. Visa Credit Card), issuer name, and theE.164 mobile phone number retrieved from the credential holder's account(in Application Unique String format as defined earlier). There must bea valid E.164 mobile phone number in the account record in order toenable OTA PIN verification with a credential.

WCM 810 receives the PIN request message containing the aboveinformation. WCM 810 uses the E.164 number to perform an ENUM query. WCM810 then retrieves and parses NAPTR records received from the query aspreviously described herein. The NAPTR record associated with a walletapplication or service is selected and used to initiate peer-to-peer SIPcommunication between WCM 810 and the wallet application on wirelessdevice 800 via the Internet and mobile operator's wireless network 880.The incoming message may automatically launch the wallet application orunder another embodiment, it may always be running on the device. Afterexchanging session information, encryption keys, and other pre-requisitemessaging required to establish secure, real-time connectivity—WCM 810will send a standard formatted PIN request to the wallet applicationthat contains information such as the name of the organization thatoriginated the authorization request, location ID from where the requestoriginated (e.g. a store address), date/time of authorization request,transaction amount being authorized (or purpose of transaction if anon-financial transaction), transaction ID, last four digits of accountnumber, credential type (e.g. Visa Credit Card), and issuer name.

The wallet application in turn receives the properly formatted PINrequest, and launches a PIN verification screen that displays theinformation received in the request. The user is prompted on screen toenter his PIN in order to authorize the transaction described. The usercan input his PIN as requested using the key input capability of thewireless device 800. After the user enters his PIN and presses anapplication-designated button to submit the PIN, the actual PIN or a PINOffset is transmitted in an encrypted manner to WCM 810. WCM 810 in turntransmits the received information in real-time with the transaction IDto the issuer's card management system 830 for verification (thetransaction ID is sent as a way to match the response with the originalauthorization request that is pending in the card management system830). The card management system 830 validates the PIN or PIN offset andif it matches the information in the account record, a positiveauthorization response (approval message) is sent back to thepoint-of-sale through the same path the authorization request wasreceived 870.

Upon validating the PIN or PIN Offset, the card management system 830may also send an approval confirmation back to WCM 810 using thetransaction ID as the only identifier. WCM 810 which is stillmaintaining its peer-to-peer session with the wallet application willsend the approval to the device 800, which will result in an approvalmessage and/or tone being generated by the wallet application on thedevice 800 (see FIG. 9). Once the wallet application receives a PINapproval message, the wallet application can terminate the SIP session(under another embodiment, the WCS could instead terminate the SIPsession).

In the event that the user initially entered and submitted the wrongPIN, the issuer's card management system 830 would in turn have sentback an “invalid PIN” message to WCM 810 in order to notify the walletapplication on wireless device 800 and request a second PIN entry by theuser. The number of allowed PIN attempts would be controlled by theissuer card management system 830. PINs submitted for onlineverification as described above, are not retained or stored in thememory of wireless device 800. Credential issuers may allow PINs to becomprised of any combination of upper or lower case letters, numbers, orspecial characters.

A credential issued to the wireless device 800 could be labeled by anissuer as using over-the-air, real-time PIN verification so the walletapplication is aware of this information. Such a code would allow thewallet application to recognize that such credentials do not require awallet PIN to be input by the user when linked to a “hot button” andaccessed from there.

The use of a real-time PIN-verification system as described has severaladvantages. One advantage is that PINs can be entered directly into theuser's wireless device 800, alleviating the need for an externalterminal that has a PIN-pad. Further, online PIN verification also givescertain credential issuers a stronger means by which to validate aperson's identity during a transaction. For example, card-basedcredentials that are validated today based on a signature match with thesignature on the back of the card are open to fraud. PINs offer a betteridentity validation alternative to signatures, and are in manyinternational jurisdictions considered to be legal electronicsignatures. While the above description calls for the use ofover-the-air PIN verification, it should be noted that biometrics couldalso be used in lieu of PINs, while still falling within the scope ofthe present invention. For example, a user may be prompted to scan hisfingerprint using an integrated scanner in the wireless device 800instead of inputting a PIN as described earlier.

One use of the over-the-air PIN verification is with credit cards.Credit card transactions in North America and many other parts of theworld require nothing more than the signature of the card account holderto complete a “card present” transaction. Implementing online PINverification for credit cards at the POS would be a monumental tasktoday, as it would involve the reprogramming or retrofitting of millionsof terminals with PIN pads, costly software development to retailertransaction processing systems, and changes to the way credit cardtransactions are processed by cardacquirers/networks/associations/issuing banks. The over-the-air PINverification system offers an alternative to the costly retrofitting andreprogramming that would be required to implement PIN verification atthe POS, similar to the way online debit cards work today. Theover-the-air PIN verification system could be implemented with only theissuer having to make changes to its own systems.

As an example, assume that Sample Bank deploys a WCM on its network andinterfaces it to its credit card management system. Sample Bank couldbegin offering an innovative credit card product that provides consumerswith enhanced protection against fraudulent credit card transactions.The MasterCard credit card product offered by Sample Bank could provideonline PIN validation via a registered wireless device on everytransaction. Sample Bank could offer the over-the-air PIN verificationfeature for electronic cards issued to wireless devices, and also fortraditional magnetic-stripe cards that typically require a signature. Inboth cases, the retailer POS would process the credit card transactionas it normally would. The difference is that changes within SampleBank's card management system will allow the incoming authorizationrequest to perform a PIN validation through the WCM before it sends anapproval/denial back through the card network. Credit card issuers likeSample Bank could decide to allow users to opt-in to this feature or thefeature can be standard with specific card products.

Assume that a wireless user has an electronic Sample Bank MasterCardcredit card stored in the wallet application that is setup for OTA PINvalidation. The user selects the electronic card for use in a proximitytransaction at a grocery store, and the credential information istransmitted to a reader via RF as described earlier. The POS at thegrocery store will switch the transaction to its central host, which inturn will recognize that this is a MasterCard credit card and switch itto the MasterCard network (either directly or through anacquirer/processor depending on configuration). MasterCard in turnswitches the authorization request to Sample Bank which is the cardissuer. Sample Bank's gateway receives the authorization request, andpasses the transaction to its card management system for approval. Thecard management system checks the account status using the normalvalidation process it follows for credit card authorizations. One of thenovel aspects of the present invention is that Sample Bank hasimplemented a new credit card product with OTA PIN verification. Assuch, a flag in the credit card customer account record signals to thecredit card management system that an authorization approval cannot besent back to the retailer POS until an Over-the-Air PIN verification iscompleted.

As such, the card management system looks up the card member'sregistered E.164 phone number for his mobile device. The card managementsystem in turn submits a real-time OTA PIN validation request to the WCMto which it is interfaced. The request contains information such as thename of the grocery store that originated the authorization request,location ID from where the request originated (e.g. a store address),date/time of authorization request, transaction amount being authorized,transaction ID, last four digits of account number, credential type(e.g. MasterCard Credit Card), and issuer name/logo (e.g. Sample BankMasterCard). The WCM initiates an ENUM query on the E.164 phone number,retrieves and parses the appropriate NAPTR record, and attempts toestablish a peer-to-peer session with the wallet application on thewireless device using the URI.

The wallet application on the wireless device receives the PIN ApprovalRequest and uses the device's internal capability to generate a tonewhich signals to the user that he should look at the device display. Thewallet application displays the PIN Approval Request received fromSample Bank, and prompts the user to enter his PIN in order to approvethe transaction. FIG. 9 is a sample of what a PIN Approval Request thatis displayed in the wallet application might look like.

Once the user enters his PIN and presses a button to submit it, theencrypted PIN or some transformed PIN information (derived from the PIN)is transmitted to the WCM, which forwards it to Sample Bank's cardmanagement system for validation. If the PIN is valid, the cardmanagement system sends an authorization response back to the retailerPOS using established processes. The card management system may in turnsend an approval message to the WCM for transmission to the user'swallet application (the peer-to-peer session with the user may still beopened for this to take place). Once the user receives the approvalmessage on his wireless device, the WCM may terminate the SIP session.

One important aspect of OTA PIN validation is that is requires that thewireless device and the wallet application running on it to be in goodworking order. It also requires that the wireless device have signalcoverage to be able to send and receive information via the Internet. Inthe event that the WCM cannot reach the wallet application on thewireless device, and establish communication for PIN validation, the WCMwill send a “not available” code back to the issuer card managementsystem in order for it to send a “decline” response back to theretailer's POS system (there are a number of different decline codes anissuer could use here that are standardized by the card associations andpayment networks).

Under another embodiment of this invention, the dual network processingpath utilized for transactions involving OTA PIN verification asdescribed above, could be used to prompt a user for certain preferenceinformation on his wireless device 800 during a transaction. Forexample, Sample Bank may create an innovative payment product (hereincalled the “Wallet Account”) that links together multiple paymentaccounts such as a credit account, a debit account, and a stored valueaccount under a single account number. The Wallet Account number couldutilize a Visa, MasterCard, American Express, Discover, Diners, or othernetwork/association Bank Identification Number (BIN) range that allowsWallet Account transactions to be authorized by a retailer's POS systemsthe way credit/debit card transactions are 870. When a Wallet Accounttransaction reaches Sample Bank's Card Management System 830 forauthorization, Sample Bank's system 830 will discern that the accountnumber corresponds to a valid Wallet Account which has a credit, debit,and stored value account linked. Using the user's E.164 number stored inSample Bank's Card Management System 830, the Card Management Systemwill send a message to the user's wireless device 800 to request a PIN(as described earlier) and to ask the user to specify his choice ofusing one of the linked credit, debit, or stored value accounts forcompleting the transaction. This request for payment preferencetraverses the same network path as the OTA PIN verification requestdescribed earlier, and traverses the Internet and mobile operatornetwork 880. Based on the user's payment preference input into wirelessdevice 800, Sample Bank's Card Management System 830 can authorize andapply the transaction to the appropriate account. This exampleillustrates that requests for user preferences or other informationduring a transaction can traverse a completely different network path(comprised of one or more networks) than the original onlineauthorization via one network path (comprised of one or more networks).Also illustrated is the fact that OTA PIN requests can be coupled withrequests for user preferences or other information.

Up to this point, only proximity transactions using a short-rangeinterface such as RFID have been discussed. The wallet application isalso equipped to be used for remote transactions with servers connectedto the Internet. It is envisioned that payment credentials sent byissuers to the wallet application will have data stored in ECML formatto facilitate Internet payments via the wallet application. While thesame data may be transmitted via RFID in one format, Internet paymentsmay be made in ECML format.

ECML stands for Electronic Commerce Modeling Language. It is aspecification, developed and maintained by the Internet Engineering TaskForce (IETF), that provides a standard set of hierarchically organized,payment-related information fields in an XML syntax that will enableautomated software, such as the mobile wallet discussed herein, tosupply and query for needed data in a uniform manner.

Electronic commerce frequently requires a substantial exchange ofinformation in order to complete a purchase or other transaction. WithECML, this task can be more easily automated. The wallet application,employing ECML can assist in conducting online transactions by storingbilling, shipping, payment, preference, and similar information, and byusing this information to automatically complete the data sets requiredby interactions. ECML is an existing Internet standard, already commonlyused in online shopping. Thus, Internet merchants can easily adapt theire-business to the mobile context. ECML is a structure, not a protocol.It is security-mechanism independent and can be integrated to othertransaction protocols and security elements when available.

The wallet application may be used for remote payments as follows. Firstthe consumer browses a merchant's online service on the wireless deviceand selects the items to buy. To pay for the purchases, he selects“wallet payment” and receives a payment request, i.e., a payment dataform that must be filled in. When the cursor is in an empty field of thepayment request, the consumer can simply press the “wallet button” onthe device to launch the wallet application, or the user can launch theapplication through the operating system. When launched, the user willbe prompted to enter his wallet PIN code. The user can then choose the“credential selector” option from the wallet menu. Once the user hasselected the payment method he wants to use and clicks “OK”, the walletapplication will detect the ECML fields in the open browser and willautomatically populate the fields with data from the wallet application.The user is directed back to the browser and can check the informationthat has been entered into the form before accepting the order.

In some circumstances the wallet application may require the user toprovide a credential specific PIN to complete the transaction. In othercases, the user may be prompted for a PIN during the authorizationprocess with his issuing bank (see OTA PIN verification process above).In yet another case, a merchant may require the consumer to digitallysign the payment; after accepting the order, the consumer may receive asigning request and can sign the payment with his/her personal digitalsignature PIN. This last option requires a security module (SIM/WIM) inthe terminal. The merchant may then send the consumer an acknowledgementand a digital receipt of the successful payment via methods that will bedescribed later.

The wallet application can also be used to complete web-basedtransactions made through a personal computer. A computer that has anRFID reader embedded or attached to it through a USB, serial, or someother type of port, could be used to capture payment and other personalinformation from the wireless device in ECML or other formats in orderto populate fields in a form. The process would be similar to what isdescribed above.

The data stored inside the wireless device is encrypted and protectedwith the wallet PIN code (or other biometric security information),which is used to allow the user access to the application. Security forremote transactions is provided by the browser on the wireless deviceitself. A number of server authentication and data encryption protocolsmay be employed to secure credentials and other confidential informationsuch as Wireless Transport Layer Security (WTLS), Transport LayerSecurity (TLS), and Secure Socket Layer (SSL). Wireless Identity Module(WIM) could be used for digital signatures enabling authenticatedpayments. With server authentication and digital signatures, mobiletransactions are even more secure than transactions on the fixed-lineInternet.

The wallet application is capable of receiving digital receipts frommerchants. Digital receipts are electronic equivalents of paperreceipts. They work as the payer's record of a payment transaction thathas taken place during a proximity, personal, or remote transactionusing the wallet application. Similar to a paper receipt, they containinformation such as the transaction amount, date/time of thetransaction, merchant name, payment method used, and sometimes detailsof what was purchased. The receipt functionality makes it possible tohave a record of the payment before a physical receipt can be delivered,or in cases where a physical receipt is not used at all.

The receipt support in the wallet application will follow the MeTreceipts specification. The MeT specification is a mobile optimizedstrict subset of the Association for Retail Technology Standards (ARTS).The MeT receipts specification can be found at:http://www.mobiletransaction.org/

The wallet receipt functionality makes it possible for the merchant in amobile electronic transaction to send a receipt to the walletapplication via a number of methods. The wallet application supportsreceipts by listing “application/vnd.met.receipt” as a supported MIMEtype. The MIME type is used both in identifying an incoming receipt dataobject and in publicizing the support for receipt data type in certainmessage headers (e.g. HTTP, SIP, SMTP, etc.). The received receipts arestored, if the user selects to store them, in the wallet application.The wallet application protects the user's privacy by requiring a PINcode to be entered before the receipts can be accessed through thewallet application's main menu. The Receipt menu option provides acentral point for the user to access the receipt data.

Receipts from a merchant can be sent to the user's wallet application onthe wireless device via several methods as discussed herein. Under onedesign, the user's E.164 phone number for the wireless device istransmitted to the merchant with the credential information during an RFtransaction. The wallet application would have the ability to learn theE.164 phone number of the device on which it operates through thedevice's operating system, or directly from the SIM card which maycontain certain device settings and attributes like the E.164 number. Aphone number field would be specified in the credential transmissionrecord that is transmitted from the wireless device to the POS reader(or to a server in the case of a remote transaction). Under thisembodiment, the merchant's system receives the E.164 phone number of thedevice that initiated the transaction. The merchant could use the numberin conjunction with a WCM deployed at the merchant's site to issuedigital receipts to the wallet application. The merchant would have aWCM setup to interface with its central transaction processing system.The retailer's transaction processing system would temporarily hold theE.164 number received with the credential during an authorizationrequest that originated at the POS.

Assuming the credential in this example is a MasterCard credit card, theretailer transaction processing system would switch the transaction outto MasterCard (directly or through a merchant acquirer) and onto theissuing bank for approval. Assuming an approval comes back from theissuing bank to the retailer transaction processing system, the retailertransaction processing system can issue a receipt request for thetransaction to the WCM to which it is interfaced. The receipt requestsent to the WCM from the transaction processing system might be sentconcurrent to an approval message being sent from the transactionprocessing system to the POS. The receipt request that the transactionprocessing system sends to the WCM would include the E.164 number thatwas temporarily retained, along with specific information about thetransaction that would appear on the digital receipt in the display ofthe wireless device running the wallet application. Once the transactionprocessing system sends the receipt request to the WCM, the E.164 numberthat was retained, is purged.

The WCM will use the E.164 number contained in the receipt request toperform an ENUM query, retrieve the NAPTR record for the user's walletapplication/service, and use the appropriate URI to establishpeer-to-peer SIP connectivity with the wireless device to deliver thereceipt. The use of the “application/vnd.met.receipt” MIME type in themessage would allow the SIP stack on the wireless device to know thatthe message relates to the wallet application. The wallet application inturn will recognize the MIME type and know that the message is a digitalreceipt. The wallet application will alert the user to the arrival ofthe message containing the digital receipt by displaying a message onthe device display and possibly sounding a tone (or some other sound)using the device's internal functions. The wallet application willregister the digital receipt with the Digital Receipts folder. Theactual receipt record will be stored in the secure storage memory in thedevice and can be accessed via the Digital Receipts viewer in the walletapplication.

The reason for using peer-to-peer SIP delivery for transmitting receiptsto the wallet application is for the merchant to be able to guaranteeand confirm delivery of the receipt. Merchants may be required to ensurethat consumers receive a digital receipt in order to comply with laws,payment association regulations, or other types of mandated rules. SIPprovides a means by which to ensure that a message was received by thewallet application. Further, the use of a SIP peer-to-peer sessionprovides a higher degree of privacy and security than other messagingprotocols that could be used instead.

Upon successful delivery of a digital receipt to the wallet application,the WCM is notified by the wallet application during the peer-to-peersession that it has received a properly formatted receipt. The WCM canlog all receipts and delivery confirmations to a separate server forarchiving. The archived data may be used by the retailer to satisfyaudit requirements related to its compliance with any laws or rulesaround receipts.

In the event that the wireless device is turned off or does not havenetwork coverage at the time the WCM attempts to deliver a digitalreceipt, the WCM can use the SUBSCRIBE feature of the SIP protocol to benotified when the wireless device is available for communication. TheWCM can attempt to deliver the message when it receives notificationthat the end-user device is available again.

The description above assumes that there is a standard E.164 phonenumber field in the transmission record layout. An alternate approachwould be to embed the phone number within certain fields part of thecredential itself. For example, certain implementations of contactlesscredit cards today (e.g. MasterCard PayPass) involve the transmission oftrack 1 and track 2 data from the card chip to the RF reader. The track1 and track 2 data captured from the chip is analogous to data encodedon magnetic-stripe credit cards. What is being proposed here is theincorporation of a E.164 number into one of the track 1 or 2 fields. Theretailer system would need to know the location of the E.164 numberwithin the data format in order to be able to extract it for use by itsown systems and the WCM.

An alternative approach to delivering receipts would be for the retailerto send them using their standard SMTP server. Under this embodiment,the WCM or another system could be used to do an ENUM query on the E.164number, receive the appropriate NAPTR record, and use the walletapplication/service URI (in an e-mail format such asbob@wallet.mobileco.com) to send an SMTP message to the walletapplication which would be configured to receive SMTP messages. Underthis embodiment, the wallet application would allow for incoming SMTPmessages, and would recognize the “application/vnd.met.receipt” MIMEtype in the message as being a digital receipt. The body of the messagewould be encoded with the contents of the receipt. The SMTP messagewould comply with the MeT Receipt XML Schema. The wallet applicationunder this embodiment would also comply with the MeT Receiptspecifications. In a personal transaction as discussed before, thereceipt could be sent as part of the same peer-to-peer session that wasused to initiate and complete the transaction. Electronic receipts couldalso be sent to wireless devices by the credential issuer instead of themerchant as described as above.

If a user keys in the wrong wallet PIN code (or incorrect biometricidentification if used in lieu of PIN codes) three consecutive times,the wallet application will not function for a period of 10 minutes. Ifthe user forgets his PIN, the wallet can be reset by the user with ageneral reset code, which will be available in the wallet applicationuser guide or from the mobile operator. The wallet reset function willresult in the user losing all credential information, confidentialinformation, and user preferences stored in the wallet application'ssecure storage area. The user would in turn have to go through are-issuance process with each credential issuer in order to restore thelost credentials.

Under one embodiment, the wallet application will require the user toestablish a secret question and answer before the application is usedfor the first time. This will allow the user to reset his wallet PIN, bybeing given the secret question, and being prompted for the answer tothe secret question. Upon successfully answering the secret question,the user will be given the chance to select a new PIN to replace the onethat was forgotten.

Under another embodiment of the invention, after some number incorrectPIN attempts, the wallet is permanently locked, but the informationwithin the wallet is retained. Under this design, the user is presentedwith two options after the ninth failed PIN attempt. The first optionallows the user to completely wipe out the contents of the wallet andselect a new PIN code. Under the second option, the user is given theability to go through an online authentication process with each issuerin order to validate his identity and account information. Once the userhas successfully re-validated his identity with each issuer, the walletapplication will prompt the user for a new wallet PIN.

Entering the new wallet PIN will provide the user with access to all thewallet's functionality and credentials that were successfully validatedwith the issuer. The online access to the issuer's systems for thisre-validation process are provided through capability within the walletapplication. The wallet application opens up a SIP connection to theissuer's WCM and sends a standard handshake/key exchange message inorder to establish secure communication (An Internet address for eachissuer's WCM and encryption key may be registered in the walletapplication as part of each credential record). The wallet applicationsends a message alerting the issuer's WCM that the user needs tore-authenticate his identity due to a PIN lockout. The WCM contacts theappropriate issuer system with the information, and the issuer systemresponds back with a message that requires the user to re-assert hisidentity by providing some information that only he would know. Thisrequest is relayed by the WCM to the wallet application, and may includea request for such information as the user's account number with theissuer, his social security number, date of birth, mother's maiden name,driver's license number, or a variety of other information.

The user enters the information into the form, and the information isrelayed by the wallet application to the issuer's system through theWCM. Once the user's identity has been established with the issuer, theissuer sends a code to wallet application to confirm that the user hasre-asserted his identity and that it is ok to re-activate the credentialon the device. The wallet application in turn terminates the sessionwith the issuer's WCM. Upon completion of the first validation, thewallet application contacts the next issuer whose credential is storedin the user's wallet. The same process is repeated to re-assert theuser's identity. The information that is requested by one issuer tore-assert an identity will likely be different than others as eachissuer has different security measures in place, and different methodsby which to validate a person's identity.

Once the user has re-asserted his identity with the final issuer, thewallet application will prompt him for a new PIN code. The wallet willprompt for dual entry to ensure proper input. Once the user logs in withthe newly selected PIN, the user will see all the credentials for whichhe re-asserted his identity online directly with each issuer. Anycredentials where the user was not able to re-assert his identity withthe issuer will be deleted from the wallet storage. Once the user logsin with his new PIN, certain wallet settings will also be unlocked andrestored to their former position.

The wallet application may have a feature whereby it automatically pollsa server managed by a mobile operator, software developer, or otherparty for upgrades to the wallet application. The application may needto be upgraded from time-to-time to support new features or implementnew security measures. The wallet application will in turn poll a serverconnected to the Internet at an interval that may be pre-defined in theapplication. If the software finds an upgrade, the wallet applicationwill notify the user, and ask the user if he wants to complete theupgrade. If the user says “OK”, the application will proceed to downloadthe software and initiate the upgrade on the wireless device. Allcredentials, confidential information, and settings will be saved and beavailable in the upgraded version. The upgrade process, may use digitalcertificates to authenticate servers from where software is beingdownloaded, and also to verify the authenticity of the software itself.

Credential issuers will have the ability to remotely cancel credentials,re-issue credentials, or manage credentials in other ways on a wirelessdevice. During the initial issuance process, credential issuers willsend a unique “credential issuer key” along with the credential they areissuing to the wallet application. This key is unique to everycredential that the issuer sends out. During the issuance process, thekey is stored in the wallet application's secure storage area with thecredential itself. The key must be contained in the first message of anycommunication with the wallet application. In another embodiment, thekey is contained in every message from the issuer to the walletapplication. The presence of the credential issuer key in the initialmessage sent from the issuer to the wallet application allows the walletapplication to recognize that the message is authentic and from oneparticular issuer.

As such, the credential issuer can use the key to connect to a walletapplication and make certain changes to the credential it previouslyissued. It should be noted that the “credential issuer key” only givesthe issuer access to managing the credential that it issued and no otherorganization's credential and no other settings on the wireless device.Any initial message from an issuer that does not contain a credentialissuer key that matches a key stored in the wallet application, will notresult in communication being established between the two end-points.

The issuer can use the key to make changes to a credential in the walletapplication. Examples of changes could include, a change to thecredential's expiration date, a change in the credentials accountnumber, or a change in the account holder name associated with thecredential. In such cases, the issuer can connect to the walletapplication with a valid key, make the appropriate changes to the storedcredential, and then prompt the wallet application to display anotification message on the device display of the change that was made(a tone may also sound from the device to alert the user of the change).Under another embodiment, the issuer may connect to the walletapplication with a valid key, a notification message will appear statingwhat change the issuer will perform to a credential, the user will beprompted to approve the change, and the change will only be made oncethe user provides his consent; after the change has been completed, aconfirmation message will be displayed in the wallet application.

Under certain circumstances, the credential issuer can also use the keyto initiate communication with the wallet application and make changeswithout the user's knowledge (no display messages or tones beinggenerated). This feature is especially useful if a wireless device islost/stolen and the owner of the device wants to have a credentialdeleted. Under such a scenario, the user might call the issuer or go onthe issuer's web site to report his wallet device as being lost/stolen.Upon receiving the request, the issuer would send a message with thecredential issuer key to its WCM in order to establish communicationwith the wallet application for the purpose of deleting the credential.If the wireless device is turned on and has network coverage, the issuercould connect to it through the WCM and issue a lost/stolen command tohave the credential deleted. The wallet application on the user's devicecould delete the credential without alerting a fraudster through displaymessages or tones being generated.

If a user's wallet device is lost/stolen, notifying each credentialissuer individually may be a long and tedious process for the user. Assuch, the wallet application may also have a feature whereby a mobileoperator will be able to connect to the wallet application and issue acommand to purge all its contents.

During the setup process of the wallet application, a mobile operatorwill issue a unique “mobile operator key” to each wallet applicationdevice. The key is stored in the wallet application, and is used by theoperator to reset the wallet application remotely in the event that thedevice is lost/stolen, and to manage other wallet settings like (SIPproxy server addresses, DNS server addresses, etc.).

A user who has recently lost his wallet device could contact theoperator via phone or log in to the operator's web site to notify theoperator online. The operator would authenticate the identity of theuser by asking him a series of questions on the phone or on theoperator's web site. Once the user's identity is confirmed, the user canprovide his consent to have the operator delete the contents of thewallet application remotely.

The operator, using a WCM would connect to the device using the “mobileoperator key”, and issue a command to purge all contents of the walletapplication. This can be accomplished without a fraudster knowing thatthe operator has connected to the device and has issued a command topurge all confidential wallet data and has locked the application. Inorder for the operator to connect to the device and issue the purgecommand, the device needs to be turned on and must have signal to thewireless network. In the event that the device is not reachable by themobile operator's WCM, the operator can use the SUBSCRIBE function inthe SIP protocol in order to be notified when the device is networkaccessible.

The “mobile operator key” can only be used by the mobile operator toissue a purge command to the wallet application, and manage specificsettings in the application that relate to how the application interactswith the operator's network and SIP infrastructure. The key does givethe operator access to any credentials or other confidential data storedin the application.

There may be instances where a user wants to change wireless devices,and requires the ability to transfer his wallet credentials and contentsfrom his current device to a new device. The user may accomplish thisusing a feature in the wallet application that allows stored credentialsand other confidential information to be securely transmitted to anotherwireless device using the short-range transmission capability of bothdevices (e.g. Bluetooth, infra-red, etc.).

The user would first login to his existing wallet application using hisPIN or biometric ID. From the settings menu, the user would choose the“secure wallet transfer” option. The user might be given the ability toselect which short-range transmission capability to use forcommunication with the new device (in case the device supports differenttypes). For this example, we will assume that the user selectsBluetooth. The wallet application on the existing device will display arandomly generated 20 digit key that the user will be required to enterin the wallet application on the new device in order to authenticate theexisting device and wallet. The user will be required to perform thefollowing steps before peer-to-peer communication can be establishedbetween the two devices:

1. The user turns on the new wireless device (which is pre-loaded withthe latest version of the wallet application).

2. The wallet application is launched. As the user has never used thewallet application on the new wireless device, launching the walletapplication will ask the user if he is wants to setup a new wallet, oris transferring a wallet from another device.

3. The user selects that he is transferring a wallet from anotherdevice.

4. The user is asked to enter the 20 digit key that is currentlydisplayed on his existing wireless device (from where the credentialswill be transferred). The user inputs the 20 digit key exactly the wayit appears on the existing device display. Upon submitting the key, thenew device displays a message stating that it is ready to connect viaBluetooth.

5. On the existing wireless device, the user is asked to press adesignated key as soon as the new device is ready for communication. Theuser presses the designated key, which enables its Bluetooth interface.It is assumed that Bluetooth security is implemented by the walletapplication using preset security mode 3 with authentication andencryption.

6. The existing device is now prepared to discover the new Bluetoothenabled device.

7. The existing device performs a Bluetooth inquiry and gets a responsefrom the new wireless device.

8. As part of the Link Manager Protocol (LMP) channel set-up, theexisting device demands authentication of the new device.

9. The new device detects that it does not have any previous link keywith the new device.

10. The Bluetooth pairing is requested.

11. The existing device prompts the new device for the passkey that wasinput by the user.

12. The passkey is sent from the new device to the existing device andis validated.

13. A key exchange is performed between the new device and the existingdevice. A link key is derived that is shared between the existing deviceand the new device.

14. The new link key between the existing device and the new device isstored in nonvolatile memory in both devices.

15. The existing device authenticates the new device.

16. The new device authenticates the existing device.

17. The existing device and the new device perform an encryption keyexchange.

18. The LMP set-up is now complete. The existing device and the newdevice encrypt all data they exchange from now on.

19. The wallet application on the devices automatically switch thedevices out of pairing mode so they no longer accept any new inquiriesor pairing requests.

20. At this point, both wallet applications will not allow any externalconnections while the two devices are communicating.

21. The user will be prompted on the new device for the wallet PINassociated with the existing device. Once the correct PIN has beenentered, the contents of the wallet on the existing device will begintransferring to the new device.

22. The wallet application on both devices will show a visualrepresentation of the data transfer occurring from the existing deviceto the new device. The picture will show the existing device on the leftand the new device on the right of the screen, and a repeating animationof an arrow moving from the existing device to the new device. The arrowrepresents the data movement. A dynamic bar at the bottom of the screenwill show the percentage completion of the data transfer.

23. In the event that the transfer is interrupted for any reason, theprocess must be started from the beginning (no data will be retained onthe new device in the event of an interruption).

24. Upon completion of the data transfer, the new device willacknowledge with the existing device that all data has been transferred.

25. The existing device will purge all credentials and data stored inthe wallet application, will notify the new device of the purge, andwill reset the application.

26. The new device will be notified on screen that data on the olddevice was purged.

27. The reset of the wallet application on the old device will terminatethe Bluetooth session. All encryption keys related to the Bluetoothsession will be discarded.

28. The user will now be able to log into the wallet on the new devicewith his existing PIN.

The transferred credentials cannot be used until the wallet applicationsends a transfer notification to each credential issuer and receives anacknowledgment back. After the transfer of information between thedevices is completed, a notification is automatically sent to eachcredential issuer with specific information related to the new device towhich the credentials were transferred. These notifications must be sentbefore the credentials can be used. The notification to the credentialissuer could contain, for example, the new device's Media Access Control(MAC) address, a unique code assigned to most forms of networkinghardware. The address is permanently assigned to the hardware, socredential issuers may use the MAC address as a way to confirm thatfuture communication from a specific user's wallet application isoriginating from a registered device. Credential issuers in this casewould retain the MAC address for the wallet device in its user database,and validate the MAC address contained in future communications from thewallet application against the address stored in its database for thatuser. Communications with incorrect MAC addresses will be rejected bythe issuer's system. Other information that could be sent as part of anotification message from the wallet application to the credentialissuer includes a new E.164 phone number (if the new device has a newlyassigned number) and a new randomly generated encryption key for eachcredential issuer (used by credential issuers to encrypt informationbeing sent to the wallet application—could be one key for all issuers orunique keys for each issuer depending on the design).

Credential issuers may also want to re-authenticate the user's identityin order to allow a credential to be activated on the new device; thismay involve the issuer's system establishing a peer-to-peer SIP session(via the WCM) to prompt the user for specific information that only heknows. The user in turn would be required to input the requestedinformation into the wallet application interface in order toauthenticate themselves and have the credentials re-activated. Thecredential issuer may also use the peer-to-peer session to re-issue anyencryption keys that were issued to the last device.

The wallet application has two logging features that can be accessedthrough the wallet main menu “Log Viewer” option. First, the walletapplication will log all transactions made in proximity, personal, orremote mode. The log will display information such as date/time, name ofretailer/organization, location ID, list of credentials used in thetransaction, and purchase price (if transaction had a financialcomponent). The purpose of this log is to allow a user to see whatcredential and personal information was shared with a third-party.User's need to be able to verify sometimes what personal information mayhave been shared during a specific transaction. This viewer allows theuser to go back and view up to 6 months of transactions. In the case offinancial transactions, the log entries will also have links to digitalreceipts (which are stored separately in the wallet application).Digital Receipts will be linked to log entries based on date/time stampand credential matches (other criteria could also be used—for example,under one embodiment, the device generates a unique transaction ID whichis transmitted with the credential to the merchant during eachtransaction. This ID could be contained in the digital receipt, and usedby the wallet application to link the digital receipt with the logentries).

The second logging feature registers all credential changes in thewallet application. This feature logs all new credentials, changes tocredentials, and credential cancellations. Up to 1 year of data could beretained. The purpose of this log is to give users the ability to goback and see when credentials were first issued and when issuers madeother changes. This log captures, date/time, credential, and descriptionof activity/change made by issuer. The log viewer will allow the user tosort log entries based on any of the column headers.

Under one embodiment of the present invention, the secure storage of thewallet application resides on a remote network-connected storage devicemanaged by the mobile operator or a “wallet service provider”. Based onthis design, the wallet application registers an external wallet storageservice as an “extension” within the wallet application on the wirelessdevice. The external storage may be a standard application extensionthat is automatically registered when the application is first launchedand setup by the user. The external storage is used to storecredentials, personal information, and some wallet settings. Theexternal storage performs two basic functions: storage and retrieval ofinformation registered in the user's wallet application.

The wallet application may have a pre-programmed address of a secure andtrusted storage server. During the wallet application setup process, theapplication may contact the storage server to create a profile. Themobile operator or service provider may request some personalinformation to authenticate the identity of the user in order to createa storage profile for the user's wallet. During the storage setupprocess, the storage server will establish a valid username/password forthe wallet application to automatically access the storage area; theusername and password may be system generated or could be user definedduring the storage profile setup.

The wallet application and storage service will exchange encryption keysfor secure communication. The communication keys are used to encrypt allmessages between the wallet application and the storage server. Newcommunication keys can be dynamically generated for each communicationsession, or the same keys can be used for a set period of time beforethey are automatically changed.

Credentials will be issued to the wireless device in the mannerpreviously described in this document with only a slight modification towhere the credentials actually get stored. When an issuer's WCM opens apeer-to-peer SIP connection with the wallet application on the wirelessdevice, the wallet application will have an open connection maintainedto the secure storage service. Any credentials that are issued to thewireless device will be transparently transmitted to the storage servicewhere they will reside. The connection between the wallet applicationand the storage service could utilize an application protocol such asHTTP, SIP, or others. Any data transmitted to the storage service willbe registered with the wallet application first; the registration ofcredentials, personal information, and other confidential data withinthe wallet application allows the wallet application to display headersfor information in storage without having to retrieve it online; theregistration process also allows the wallet application to call specificdata from storage based on the assigned registration ID for the dataobject in storage.

Under this embodiment, whenever the wallet application is launched onthe device and a user logs in with his valid PIN, a real-time connectionis initiated between the wallet application and the storage service. Thewallet application automatically authenticates itself and gains accessto the stored credentials. The user is then free to use the wallet menuto select stored credentials or profiles to facilitate a transaction.The Credential Selector and Profile Selector screens will showcredentials and profiles in storage; if a user selects an appropriatecredential for use, the credential information is securely transmittedto the wireless device and temporarily made available for use by thedevice's RFID interface. No credential data or settings are retained inmemory of the wireless device after a transaction is completed. Underthis embodiment, even electronic receipts, logs, and other informationregistered with the wallet application are stored in the externalstorage service, and made available for use by the wireless device.

Under another embodiment of this invention, information stored in theexternal storage service is not registered with the wallet application.Under this design, headers describing the stored information, and theinformation itself—are retrieved in real-time from the storage device.

The following discussion provides details concerning the architecture ofthe IETF, 3GPP, and 3GPP2-compliant SIP wallet application that isintended to function on a wireless device. As opposed to the situationin 2G networks, in 3G and in traditional IP networks it will be veryunlikely that wireless terminal vendors will invent and implement allkey applications. Operators and third-party developers are keener thanever to provide their own customized applications.

This type of development is made possible by opening some of the APIs onthe terminal. Opening these API functionalities on the JAVA side forexample has the advantage that applications can be run in a secureenvironment. Furthermore, applications can be provisioned to theterminal using an over-the-air mechanism in a secure and controlled way.One additional advantage is that the APIs will be available regardlessof the underlying operating system.

A SIP Client API provides access to the basic services of a SIP stack.The most essential services are sending and receiving SIP messages,creating registrations, and forming and tearing dialogs initiated byINVITE and SUBSCRIBE. A SIP Client API is appropriate for applicationslike the wallet application disclosed herein, that intend to use SIP formanaging communication sessions, subscribing to events, and sendingstand-alone SIP messages.

One such API is known as JSR180, the SIP Application ProgrammingInterface (API) for Java 2 Micro Edition (J2ME) which completed itsfinal release in October 2003 as part of the Java specification process.The Java platform is seen as a base for many new innovative SIPapplications. JSR180 can also be deployed on a MIDP 2.0 platform. TheMobile Information Device Profile (MIDP) is a key element of the Java 2Platform, Mobile Edition (J2ME). When combined with the ConnectedLimited Device Configuration (CLDC), MIDP provides a standard Javaruntime environment for today's most popular mobile information devices,such as cell phones and mainstream personal digital assistants (PDAs).

Another SIP API is the SIP Client API Specification (Version 1.0; Jul.5, 2004) that is valid for all platforms running Symbian OS v7.0s. TheSIP Client API requires the SIP Codec API (v1.0) that provides servicesfor encoding/decoding SIP headers and their fields. Both the Java andSymbian APIs mentioned above allow multiple applications on the samedevice to use the SIP stack simultaneously. The function calls of theAPI are synchronous. An application must implement a set of callbackfunctions, which the SIP Client API can use to pass events to theapplication.

The SIP-based wallet application described herein is intended to bedeveloped for both of the environments described, and could also bebuilt for other environments such as BREW, Palm, PocketPC, and Linux.The wallet application will utilize a SIP API framework operating on thedevice. The use of other SIP APIs (other than those mentioned above)with other operating systems or programming environments is alsopossible according to the teachings of the present invention.

SIP identity is a logical identity (address-of-record), a type ofUniform Resource Identifier (URI) called a SIP URI. SIP identity isfrequently thought of as the “public address” of the user (see RFC 3261,6 definitions, p. 20).

A wireless terminal that supports SIP is typically configured for oneuser at a time (SIP provider settings). This means that the SIP systemuses that address-of-record (URI) as the identity when communicating toother identities. Now, it is very likely that there will be severalapplications that want to share the same SIP identity. For example,audio/video, instant message/presence, game applications, and a walletapplication as disclosed herein. On the other hand, some applicationscan use their own SIP identity (for that particular service), which doesnot share the same SIP properties.

When sharing the same identity, the issue falls to the decisions on howthe SIP requests are routed to the User Agents (applications). Thisfunctionality is specified in SIP Working Group(http://www.ietf.org/html.charters/sip-charter.html) as callee'scapabilities and caller's preferences. The implementation should followthe framework and parameters specified in the final specification of theSIP working group.

When sharing the same identity (address-of-record) the terminal has toknow where the incoming request is routed. To do this it can use theMIME type tag carried in a special header (e.g. Accept-Contact). Eachapplication is mapped to a certain MIME type. For example, Java SIP APIprovides a way to utilize this functionality as is specified below.

To allow the Java SIP API to share the system SIP identity or use theapplication's own identity, the following rules are defined when the SIPserver connection is opened with Connector.open( ):

Connector SIP URI SIP Identity Request Routing 1sip:5080[type=“application/wallet”] Use dedicated port 5080 Route allincoming SIP Use identity set by the requests on port 5080 to thisapplication SipConnectionNotifier. If the optional MIME type feature tag“application/wallet” is set route only the requests with the matchingtag. 2 sip:;type=“application/wallet” Share system SIP port Routeincoming SIP requests Share system SIP identity with MIME type featuretag “application/wallet” to this SipConnectionNotifier 3 sip: Usededicated port Route all incoming SIP selected by the system requests tothe selected port Use identity set by the to this SipConnectionNotifierapplication

RFC 2046 defines a top-level MIME “application” media type to be usedfor discrete data to be processed by some type of application program.This information must be processed by an application before it isviewable or usable by a user. Such applications may be defined assubtypes of the “application” media type. Examples of two subtypes are:“octet-stream” and “PostScript”.

In general, the top-level media type is used to declare the general typeof data, while the subtype specifies a specific format for that type ofdata. Thus, a media type of “application/wallet” is enough to tell auser agent that the data relates to an application on the wirelessdevice, and further to the Wallet Application which will be mapped tothe specific MIME type.

According to RFC 2046, the subtype of “application” will often be eitherthe name or include part of the name of the application for which thedata are intended. While the above example uses the “wallet” subtype forthe Wallet Application, another subtype that conforms with therequirements for MIME application sub-types can be used.

Any application program name cannot be used freely as a subtype of“application”. RFC 2048 defines registration procedures which use theInternet Assigned Numbers Authority (IANA) as a central registry forsuch values. Provided that the media type meets the requirements formedia types and has obtained approval that is necessary, the author maysubmit the registration request to the IANA, which will register themedia type and make the media type registration available to thecommunity.

Profiles may be shared with other applications. A profile is acollection of data necessary for providing required SIP registrationbehavior. A profile stores the following main parameters:

The user-friendly name of the service provider

The type of the profile, for example, 3GPP R5 IMS, IETF, or aproprietary profile type

The user's registered public name (SIP Address Of Record, AOR)

The access provider identifier of the used Internet Access Point (IAP)

The address of the SIP registrar server, with optional connection andsecurity parameters

The address of the SIP proxy server, with optional connection andsecurity parameters

Compression and security preferences

An indication of whether the profile is to be always automaticallyregistered or only when it is used by an application

Any number of extension parameters stored as key/value pairs

The SIP-based Wallet application can share the same profile as otherapplications, and thus the same registration. This functionality may bebuilt into the Wallet Application or could rely on an API. For example,the SIP Profile API Specification (Version 1.0; Jul. 5, 2004) provides aSIP registration service for applications. In order for the WalletApplication to use this API, the SIP Client API for the Symbian OS v7.0sis needed as well.

The behavior of the registration service depends on the profile typeused. There are different profile types for different standards, forexample, 3GPP R5 IP Multimedia System, Internet Engineering Task Force(IETF), and proprietary standard types. At any given time, zero or moreprofiles of any profile type may exist. Each profile has a one-to-onecorrespondence with one SIP registration. The user of the API can beunaware of the details of the registration process and can ignore statechanges of the access point connection during SIP registration.

The SIP Profile Agent subsystem stores the SIP profiles in thepersistent storage. As mentioned before, these profiles hold informationnecessary for providing required registration behavior. The SIP profilescan be managed with the SIP Settings UI (Application for end the user toadd/update/remove SIP profiles), or they can be managed with over theair (OTA) configuration (by the SIP service provider).

All aspects of the WCM are preferably compliant with IETF RFC 3261,3GPP, and 3GPP2 standards. EMV-Compliant—The wallet application shouldmeet standards defined by card organizations. The wallet applicationshould comply with ISO standards for Personal Identification Number(PIN) management and security in open networks (ISO/TR 9564-4:2004)

Cryptographic functions supported include:

PIN, MAC and Data encryption keys

Multiple index for all cryptographic keys

Single, double or triple length of all encryption keys

Single or Triple DES encryption/decryption

Dynamic key exchange

Key thresholds and threshold limits

Under another embodiment of this invention, the user sets up a “walletaccount” with a mobile operator or “wallet service provider”. Theserver-based wallet account allows a user to store credentials, personalinformation, and other confidential information in the electronicwallet, which the user can access through a number of channels using aminimum of two registered tokens. The server-based wallet systemdescribed at this point has all the same functionality of the walletapplication described above (operating on a wireless device), but allowsa user to access the entire “electronic wallet” from virtually anyInternet-based channel such as a wireless device, a PC, or point-of-saleterminal.

Based on the design disclosed herein, the user would be required toprovide a E.164 number for a wireless device in order to establish thewallet account on a server hosted and managed by the wallet serviceprovider. The wallet server uses the E.164 number as an access token andmay also use it as a master account number. The user would also berequired to establish a username and password/PIN for web access to theaccount (the username and password/PIN are also tokens). Theserver-based wallet application allows a user to register other tokensthat can be used to gain access to the account through various means.For example, biometric information such as fingerprints, iris,voiceprints, facial recognition, and hand geometry can be registeredthrough a trusted service provider of the wallet service. Amagnetic-stripe card, an RFID-based device, a bar-coded card, or othersimilar devices could also be registered as valid tokens that can beused for accessing the server-based wallet.

The number of tokens and the types of tokens required to access thewallet are dependent on the access methods available to access thewallet. For example, a POS terminal equipped with a fingerprint scannerand a numeric key input device, would only require a user to provide avalid E.164 phone number and a fingerprint in order to access hiselectronic wallet as disclosed herein. This example of two-factorauthentication is sufficient to securely access a person's wallet at thepoint-of-sale. Similarly, a POS system that has an RFID reader and anumeric key input device, may require the user to wave a registered RFIDtoken, provide a E.164 number (which could be transmitted by the RFIDtoken or entered by the user manually), and enter his wallet PIN. Thisexample would be considered three-factor authentication if the E.164number is not encoded in the RFID device and must be entered manually bythe user.

The encoding of a E.164 number in an RFID-based device, magnetic-stripecard, bar coded device, or other similar device—that is used as anaccess token for an electronic wallet is disclosed herein. The E.164number encoded in the access token may be transmitted to a reader alongwith other information such as a wallet account number, a unique deviceID, and a variety of encryption information (that could be validatedwith the reader and/or with the wallet server).

In contrast to the design detailed earlier in this document, the mobileoperator or wallet service provider will populate the ENUM addressinformation differently; under the previous design, the URI in the NAPTRrecord associated with the wallet service pointed to the wireless device(with the E.164 number). Based on this design, there are two URIs forthe E.164 number that are associated with the wallet service. One URIpoints to a wallet server (managed by the operator or a wallet serviceprovider). The other URI points to the wallet application that resideson a wireless device.

As an example, the following NAPTR records might be received for an ENUMname query on a particular E.164 mobile number (+1-202-555-1234) thatwas used to setup a wallet account:

$ORIGIN 4.3.2.1.5.5.5.2.0.2.1.e164.arpa.IN NAPTR 100 10 “u” “E2U+sip” “!̂.*$!sip:bob@mobileco.com!”.IN NAPTR 103 10 “u” “E2U+walletserver”̂.*$!sips:12025551234@walletservercom!”.IN NAPTR 104 10 “u” “E2U+walletapp”“!̂.*$!sips:bob@wallet.mobileco.com!”.

The “E2U+walletserver” and “E2U+walletapp” enumservices would beregistered as described before. The use of the “E2U+walletserver”enumservice as a selection mechanism for a wallet-based server, and the“E2U+walletapp” enumservice as a selection mechanism for a wallet-basedapplication on a wireless device is provided. While the examples aboveuses the theoretical “walletserver” and “walletapp” Types, the actuallabel that is registered with the LANA for the purposes described couldbe different.

As before, a user that requests an electronic credential will providethe issuer with a valid E.164 number for his wireless device. Theissuer's WCM will perform an ENUM query on the E.164 number based on thesteps outlined before. The difference in this embodiment is that theissuer WCM will look for a NAPTR record associated with the“walletserver”. The registered ‘E2U+walletserver’ enumservice willfunction as a selection mechanism for the WCM when choosing one NAPTRresource record from another. The WCM will use the corresponding URI toestablish a secure peer-to-peer connection with the wallet server usingany number of protocols including SIP. After exchanging encryption keys,initial communication from the WCM to the wallet server will contain theE.164 number. The wallet server will check to see if the E.164 number isassociated with a valid account on file. If it is, the wallet serverwill send back an acknowledgement to the WCM while performing an ENUMquery on the E.164 number to obtain a NAPTR record for the“E2U+walletapp” service. The wallet server will use the resulting URI toinitiate a peer-to-peer SIP session with the wireless device (whilestill maintaining the connection with the issuer WCM).

The wireless device, loaded with “wallet client software”, allows a userto utilize the remote wallet functionality and access the credentialsstored on the wallet server. The wallet application together with thewireless device on which it operates, allows the user to communicate inreal-time with the credential issuer during the issuance process. As thecredential is ultimately being issued to a remote server, the use of thewireless device allows the user to be located and contacted in real-timeby the issuer in order to authenticate the user's identity beforecompleting the issuance. In essence the issuer's WCM is communicatingwith the wireless end-user through the wallet server using the SIPprotocol. The wallet server would have an integrated WCM of its own tofacilitate communication with end-user wireless devices and issuers.Provided that the wireless user validates his identity for the issuer,the issuer will send the digital credential to the wallet server, whereit will be stored. All new credentials or credential changes may beregistered in the wallet client software on the wireless device; thisway the wireless device doesn't need to access the server every time theuser wants to scroll through lists of credentials, profiles, or otherinformation. Alternatively, the wireless device could read allcredential header information from the server as described earlier.

This server-based design makes it easier for users to change wirelessdevices, as the user only needs to change the E.164 number that islinked to the wallet account on the server. In the event that the user'swireless device is lost/stolen, the user can simply log into his walletprofile through the wallet service provider's secure site, andtemporarily restrict the use of credentials stored in the wallet.

This design also offers a flexible solution for user's to gain access totheir credentials in their digital wallet without the use of a wirelessdevice. For example, in one scenario, a user making a purchase at agrocery store may be prompted at the point-of-sale for his E.164 phonenumber and his fingerprint. The grocery chain's IP-enabled POS systemwill capture the E.164 number and biometric information, and forwardthem to a WCM connected to the grocery chain's network. The grocerychain's WCM will be used in this case to facilitate a transaction withthe wallet server where the user is registered. The WCM will perform anENUM query on the E.164 number using a DNS server on the grocery chain'snetwork, retrieve a NAPTR record that corresponds to the appropriatewallet service (e.g. “E2U+walletserver”), and use the URI in the NAPTRrecord to establish a secure peer-to-peer session via the Internet tothe wallet server. The WCM and the wallet server may exchange encryptionkeys using established methods for doing so over the Internet prior toexchanging any confidential information. After the key exchange, the WCMwill send the wallet server the E.164 number and the biometricinformation (fingerprint data) that was captured at the POS. The walletserver will validate that the E.164 number is associated with an accounton record that is in good standing. If the account is valid and in goodstanding, the wallet server will validate the biometric informationagainst information stored in the account. If the biometric informationmatches, the wallet server will transmit a menu showing all thecredential types that are in the customer's wallet. This menucorresponds to the primary credential categories in the hierarchy thatwas previously discussed in this document. The customer could forexample select “payment methods” and then see the secondary hierarchy(credit cards, debit cards, stored value cards, etc.). Credentials willbe displayed under the secondary categories. Credential listings will bedisplayed with some of the follow information:

Name/logo of issuer

Name/logo of association (e.g. Visa, MasterCard)

Last 4 digits of account number

Indicator showing whether the payment method is for business/personaluse

Using the POS display and input device (could be a touch screeninterface), the user can select the appropriate payment method tocomplete the transaction. The user will be able to select multiplecredentials stored on the wallet server for the transaction. Forexample, a payment method, loyalty card, and electronic coupons couldall be selected. Once the user completes his selections, he will beprompted to signal his intention to complete the transaction. Thecredentials are then securely transmitted from the wallet server to thegrocery chain's WCM which routes them to the POS system for processing.Once the POS system processes payment and completes the transaction, thePOS (or a related system in the chain's network) sends a confirmationwith a digital receipt to the grocery chain's WCM. The WCM transmits thedigital receipt to the wallet server and then drops the connection tothe wallet server. The digital receipts are made available to the userby logging into the wallet service provider's secure site using theusername and password/PIN that was created. A user may choose to alsoreceive receipt notices from the wallet server via e-mail or on hiswireless device using the methods and protocols previously described,Short Message Service (SMS), or some other type of messaging protocol.

As mentioned earlier, the wallet server will have an integrated WCM. Thewallet server will also have access to a secure storage apparatus,high-performing database infrastructure, and front-end web architecturethat allows users to manage/maintain their accounts online through astandard web browser.

Embodiments of the invention include technical benefits of providing forthe convenient, efficient, and secure distribution of credentials intowireless devices such that only those authorized to conduct thetransactions may do so and only to the extent of their authorization.Other benefits include providing for the secure importation of financialand other personal information into wireless devices. Other benefitsinclude providing a system and method through which credential issuerscan securely and rapidly target specific wireless devices for thedistribution of the appropriate credentials.

Additional technical benefits of embodiments of the invention includeproviding an overall system and processing methodology through whichfinancial transactions can be conducted in a secure context without theneed for credit cards, tags, tokens or other physical embodiments ofcurrency or the authority to conduct a transaction.

The foregoing disclosure of the preferred embodiments of the presentinvention has been presented for purposes of illustration anddescription. It is not intended to be exhaustive or to limit theinvention to the precise forms disclosed. Many variations andmodifications of the embodiments described herein will be apparent toone of ordinary skill in the art in light of the above disclosure. Thescope of the invention is to be defined only by the claims, and by theirequivalents.

What is claimed is:
 1. A computing device, comprising: a display screen;a user input interface; one or more processors; at least one memorydevice having stored therein a plurality of applications to be executedby the one or more processors, the plurality of applications includingat least one wallet application for completing transactions based onwireless data communications between the computing device and at leastone external electronic device, the at least one memory device furtherstoring at least one electronic credential; a network transceiverconfigured to communicate with a cellular communications network; ashort-range radio frequency (RF) transceiver to communicate with anexternal RF device, where the external RF device supports apredetermined communications protocol; a near-field communication (NFC)module including a NFC antenna, the NFC module configured to transmitthe at least one electronic credential to a NFC reader of the externalelectronic device based on the NFC antenna of the computing device beingwithin a RF range of a NFC antenna of the NFC reader; and a biometriccharacteristic reader for reading a biometric characteristic of a user,wherein the computing device is configured to permit transmission viathe NFC module of the at least one electronic credential to the NFCreader of the external electronic device based on comparing thebiometric characteristic of the user with stored biometric information.2. The computing device of claim 1, wherein the biometric characteristicis a fingerprint.
 3. The computing device of claim 1, wherein thebiometric characteristic reader is configured to capture the biometriccharacteristic from the user to store the biometric characteristic asthe stored biometric information.
 4. The computing device of claim 1,wherein the at least one memory device includes a secure memory forstoring the at least one electronic credential, the secure memory beingtamper-resistant memory.
 5. The computing device of claim 1, wherein thecomputing device is configured to download the at least one electroniccredential wirelessly from a credential issuing server via a datanetwork and to store the at least one electronic credential in the atleast one memory device.
 6. The computing device of claim 1, wherein theat least one electronic credential includes one or more of dataassociated with a credit card account, a debit card account, a storedvalue card account, an automated teller machine card account, a bankaccount, a payment token card account, a membership card account, aloyalty card account, an access card account, an identification cardaccount, a driver's license, an e-ticket, a pass, a coupon, and acertificate.
 7. The computing device of claim 1, wherein the at leastone electronic credential includes at least one payment token accountnumber of a payment token account.
 8. The computing device of claim 7,wherein the payment token account number is within a bank identificationnumber (BIN) range that is associated with at least one of a paymentcard issuer and a payment network.
 9. The computing device of claim 7,wherein the computing device is configured to transmit the payment tokenaccount number to the NFC reader of the external electronic device totransmit a transaction authorization request to an issuer system via apayment network, and wherein the external electronic device is part of apoint-of-sale system.
 10. The computing device of claim 7, wherein thepayment token account is mapped to a linked payment account, includingat least one of a credit account, a debit account, and a stored valueaccount within a token management system.
 11. The computing device ofclaim 10, wherein the linked payment account has an associated accountnumber within a bank identification number (BIN) range associated withat least one of a payment card issuer and a payment network.
 12. Thecomputing device of claim 1, wherein the computing device is configuredto receive an interrogation message from the external electronic devicebased on the NFC antenna being within a RF field of a NFC antenna of theexternal electronic device.
 13. The computing device of claim 12,wherein the one or more processors are configured to launch the walletapplication based on receiving the interrogation message from theexternal electronic device.
 14. The computing device of claim 13,wherein the biometric characteristic reader is configured to read thebiometric characteristic of the user based on the launch of the walletapplication.
 15. The computing device of claim 14, wherein the computingdevice is configured to provide a prompt to the user to provide inputvia the biometric characteristic reader based on the launch of thewallet application.
 16. The computing device of claim 14, wherein thecomputing device is configured to transmit to the external electronicdevice via the NFC module the at least one electronic credential basedon comparing a read biometric characteristic with the stored biometriccharacteristic and determining that the user is authorized to performthe one or more transactions using the computing device.
 17. Thecomputing device of claim 1, wherein the computing device is configuredto provide one or both of a tone and a visual message on the displayscreen to confirm performance of the one or more transactions.
 18. Thecomputing device of claim 17, wherein confirming performance of the oneor more transactions includes one or both of confirming transmission ofthe at least one electronic credential to the NFC reader via the NFCmodule and generating an electronic receipt.
 19. The computing device ofclaim 1, wherein the user input is configured to receive a userselection to select the at least one electronic credential to beautomatically transmitted to the external electronic device uponreceiving the interrogation message from the external electronic device.20. The computing device of claim 1, wherein the computing device isconfigured to receive from the external electronic device a reader keyvia the NFC module and to select the at least one electronic credentialto transmit to the external electronic device based on the reader key.21. A method, comprising: storing in at least one memory device of acomputing device at least one electronic credential and one or moreapplications configured to be executed by one or more processors of thecomputing device, the computing device including a display screen, auser input interface, a network transceiver configured to communicatewith a cellular communications network, a short-range radio frequency(RF) transceiver to communicate with an external short-range RF devicesupporting a predetermined communications protocol, and a near-fieldcommunication (NFC) module including a NFC antenna, transmitting, by theNFC module to the NFC reader of the external electronic device, the atleast one electronic credential based on the NFC antenna of thecomputing device being within a RF range of a NFC antenna of the NFCreader; reading, by a biometric characteristic reader, a biometriccharacteristic of a user; and transmitting the at least one electroniccredential to the NFC reader based on comparing the biometriccharacteristic of the user with stored biometric information.
 22. Themethod of claim 21, wherein the biometric characteristic is afingerprint.
 23. The method of claim 21, further comprising capturing,by the biometric characteristic reader, the biometric characteristicfrom the user and storing the biometric characteristic as the storedbiometric information.
 24. The method of claim 21, wherein the at leastone electronic credential is stored in a secure and tamper-resistantmemory of the at least one memory device.
 25. The method of claim 21,further comprising wirelessly downloading the at least one electroniccredential from a credential issuing server via a data network andstoring the at least one electronic credential in the at least onememory device.
 26. The method of claim 21, wherein the at least oneelectronic credential includes one or more of data associated with acredit card account, a debit card account, a stored value card account,an automated teller machine card account, a bank account, a paymenttoken card account, a membership card account, a loyalty card account,an access card account, an identification card account, a driver'slicense, an e-ticket, a pass, a coupon, and a certificate.
 27. Themethod of claim 21, wherein the at least one electronic credentialincludes at least one payment token account number of a payment tokenaccount.
 28. The method of claim 27, wherein the payment token accountnumber is within a bank identification number (BIN) range that isassociated with at least one of a payment card issuer and a paymentnetwork.
 29. The method of claim 27, wherein the payment token accountis mapped to a linked payment account, including at least one of acredit account, a debit account, and a stored value account within atoken management system.
 30. The method of claim 29, wherein the linkedpayment account has an associated account number within a bankidentification number (BIN) range associated with at least one of apayment card issuer and a payment network.
 31. The method of claim 21,further comprising transmitting, by the computing device to the NFCreader of the external electronic device, the at least one electroniccredential to transmit a transaction authorization request to an issuersystem via a payment network, wherein the external electronic device ispart of a point-of-sale system.
 32. The method of claim 31, furthercomprising: transmitting, by the external electronic device, dataassociated with the at least one electronic credential to a paymentnetwork; transmitting, by the payment network, the data associated withthe at least one electronic credential to an issuer of the electroniccredential; transmitting, by the issuer to the payment network, responsedata based on the data associated with the at least one electroniccredential; and transmitting, by the payment network, the response datato a merchant system associated with the at least one external device.33. The method of claim 21, further comprising receiving aninterrogation message from the NFC reader of the external electronicdevice based on the NFC antenna being within a RF field of a RF antennaof the external electronic device.
 34. The method of claim 33, furthercomprising launching, by the one or more processors, the walletapplication based on receiving the interrogation message from the NFCreader of the external electronic device.
 35. The method of claim 34,wherein the biometric characteristic reader is configured to read thebiometric characteristic of the user based on the launch of the walletapplication.
 36. The method of claim 35, further comprising generating aprompt to request the user to provide an input to the biometriccharacteristic reader based on the launch of the wallet application. 37.The method of claim 35, further comprising transmitting to the externalelectronic device the at least one electronic credential based oncomparing a read biometric characteristic with the stored biometriccharacteristic and determining that the user is authorized to transmitthe at least one credential via the NFC module of the computing device.38. The method of claim 21, further comprising providing one or both ofa tone and a visual message on the display screen to confirm performanceof the one or more transactions.
 39. The method of claim 38, whereinconfirming performance of the one or more transactions includes one orboth of confirming transmission of the at least one electroniccredential via the NFC module and generating an electronic receipt. 40.The method of claim 21, further comprising receiving, via the userinput, a user selection to select the at least one credential to beautomatically transmitted to the external electronic device uponreceiving the interrogation message from the external electronic device.41. The method of claim 21, further comprising: receiving from theexternal electronic device a reader key via the NFC module; andselecting the at least one credential from among a plurality of storedelectronic credentials to transmit to the external electronic devicebased on the reader key.
 42. A computing system, comprising: anelectronic device including a near-field communication (NFC) reader; anda portable computing device including a display screen, a user inputinterface, one or more processors, at least one memory device havingstored therein at least one electronic credential and a plurality ofapplications to be executed by the one or more processors, a networktransceiver configured to communicate with a cellular communicationsnetwork, a short-range radio frequency (RF) transceiver to communicatewith an external short-range RF device supporting a predeterminedcommunications protocol, a NFC module including a NFC antenna, the NFCmodule configured to transmit at least one electronic credential to theNFC reader of the electronic device based on the NFC antenna of theportable computing device being within a RF range of the NFC reader, anda biometric characteristic reader for reading a biometric characteristicof a user, wherein the plurality of applications include at least onewallet application for completing transactions based on wireless datacommunications between the portable computing device and the electronicdevice, and wherein the portable computing device is configured topermit transmission via the NFC module of the at least one electroniccredential to the NFC reader of the electronic device based on comparingthe biometric characteristic of the user with stored biometricinformation.
 43. The computing system of claim 42, wherein the biometriccharacteristic is a fingerprint.
 44. The computing system of claim 42,wherein the biometric characteristic reader is configured to capture thebiometric characteristic from the user to store the biometriccharacteristic as the stored biometric information.
 45. The computingsystem of claim 42, wherein the at least one memory device includes asecure memory for storing the at least one electronic credential, thesecure memory being tamper-resistant memory.
 46. The computing system ofclaim 42, wherein the portable computing device is configured todownload the at least one electronic credential wirelessly from acredential issuing server via a data network and to store the at leastone electronic credential in the at least one memory device.
 47. Thecomputing system of claim 42, wherein the at least one electroniccredential includes one or more of data associated with a credit cardaccount, a debit card account, a stored value card account, an automatedteller machine card account, a bank account, a payment token cardaccount, a membership card account, a loyalty card account, an accesscard account, an identification card account, a driver's license, ane-ticket, a pass, a coupon, and a certificate.
 48. The computing systemof claim 42, wherein the at least one electronic credential includes atleast one payment token account number of a payment token account. 49.The computing system of claim 48, wherein the payment token accountnumber is within a bank identification number (BIN) range that isassociated with at least one of a payment card issuer and a paymentnetwork.
 50. The computing system of claim 48, wherein the portablecomputing device is configured to transmit the payment token accountnumber to the NFC reader of the electronic device to transmit atransaction authorization request to an issuer system via a paymentnetwork, and wherein the electronic device is part of a point-of-salesystem.
 51. The computing system of claim 48, wherein the payment tokenaccount is mapped to a linked payment account, including at least one ofa credit account, a debit account, and a stored value account within atoken management system.
 52. The computing system of claim 51, whereinthe linked payment account has an associated account number within abank identification number (BIN) range associated with at least one of apayment card issuer and a payment network.
 53. The computing system ofclaim 42, wherein the portable computing device is configured to receivean interrogation message from the electronic device based on the NFCantenna being within a RF field of a RF antenna of the electronicdevice.
 54. The computing system of claim 53, wherein the one or moreprocessors are configured to launch the wallet application based onreceiving the interrogation message from the electronic device.
 55. Thecomputing system of claim 54, wherein the biometric characteristicreader is configured to read the biometric characteristic of the userbased on the launch of the wallet application.
 56. The computing systemof claim 55, wherein the portable computing device is configured togenerate a prompt to request the user to provide input via the biometriccharacteristic reader based on the launch of the wallet application. 57.The computing system of claim 55, wherein the portable computing deviceis configured to transmit to the electronic device via the NFC modulethe at least one electronic credential based on comparing a readbiometric characteristic with the stored biometric characteristic anddetermining that the user is authorized to perform the one or moretransactions via the portable computing device.
 58. The computing systemof claim 42, wherein the portable computing device is configured toprovide one or both of a tone and a visual message on the display screento confirm performance of the one or more transactions.
 59. Thecomputing system of claim 58, wherein confirming performance of the oneor more transactions includes one or both of confirming transmission ofthe at least one electronic credential to the NFC reader via the NFCmodule and generating an electronic receipt.
 60. The computing system ofclaim 42, wherein the user input is configured to receive a userselection to select the at least one electronic credential to beautomatically transmitted to the electronic device upon receiving theinterrogation message from the electronic device.
 61. The computingsystem of claim 42, wherein the portable computing device is configuredto receive from the electronic device a reader key via the NFC moduleand to select the at least one electronic credential to transmit to theelectronic device based on the reader key.